| SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden. |
 |

17-11-2011, 10:52
|
|
francosdad
Registrierter Benutzer
|
|
Registriert seit: Mar 2009
Beiträge: 80
|
|
The user specified as a definer
Hallo,
ich habe folgendes Problem. Ich schreibe gerade an einem kleinen Script, was mir eine Datenbanksicherung mittels PHP erledigt.
Das funktioniert auch soweit, aber bei bestimmten Datenbanken kommt folgender Fehler:
The user specified as a definer ('xxxxxx'@'%') does not exist
Ich arbeite hier auf einer lokalen Entwicklungsumgebung. Der genannte User existiert online in der Datenbank, aber eben nicht lokal.
Ist es überhaupt möglich die Tabelle dann zu sichern? Bzw. gibts da einen bestimmten Trick, das ganze zu umgehen.
So wie ich mich belesen habe, ist wohl die Tabelle (mittels information_schema -> views) an diesen User geknüpft!?
Bedeutet das, das kein anderer User (auch nicht root) auf diese Tabelle zugreifen kann?
Vielen Dank für eure Hilfe.
Beste Grüße
Michael
|

17-11-2011, 11:52
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
wenn es um Views, Triggers oder Stored Procedures geht, bist du gut beraten, die DEFINER-Klausel einfach wegzulassen. Ansonsten lass uns bitte wissen, was genau du gemacht hast. Ich vermute zwar, es geht um ein SHOW CREATE Statement, aber du kannst es ja noch etwas genauer beleuchten.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

17-11-2011, 12:24
|
|
francosdad
Registrierter Benutzer
|
|
Registriert seit: Mar 2009
Beiträge: 80
|
|
Ich leuchte:
Also, das letzte Statement vor dem Fehler ist eine ganz normale "SELECT" Anweisung:
Code:
select
`sXOP_Id`,
`sXOP_XtcOrdersId`,
`products_name`,
`products_price`,
`products_discount_made`,
`final_price`,
`products_tax`,
`products_quantity`,
`sXCPC_Id`,
`sXCPC_XtcProductsOptionsValueId`,
`sXCPC_ProductsId`,
`sXCPC_Size`,
`sXCPC_Color`,
`sXCPC_Form`,
`sXCPC_Quantity`
from vXtcCOrderPos;
-- 1449 - The user specified as a definer ('xxxxxx'@'%') does not exist
Genau das macht es ja so schwer für mich zu verstehen. Ich frage lediglich die Tabelle ab und möchte das Ergebnis verarbeiten; leider bekomme ich halt nur Mecker.
Danke für eure Hilfe.
Grüße
Michael
Geändert von AmicaNoctis (17-11-2011 um 12:34 Uhr)
Grund: Code umgebrochen
|

17-11-2011, 12:33
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Bitte künftig Code umbrechen, sonst findet man die Buttons nicht mehr und muss ewig weit nach rechts scrollen!
Was sagt denn PHPMyAdmin, wenn du dieses Statement ausführst? Ich kann mir nicht vorstellen, dass dieser Fehler bei einem SELECT-Statement auftreten soll. Bist du innerhalb einer Transaktion? Werden davor oder danach noch andere Statements ausgeführt?
Edit: Ist vXtcCOrderPos eine Base Table oder ein View?
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
Geändert von AmicaNoctis (17-11-2011 um 12:41 Uhr)
|

17-11-2011, 12:49
|
|
francosdad
Registrierter Benutzer
|
|
Registriert seit: Mar 2009
Beiträge: 80
|
|
Hallo,
sorry, ich dachte der Code wird automatisch umgebrochen wenn man den Code-Block nutzt.
Also, PHPmyAdmin sagt das gleiche, das der User nicht existiert.
Und laut PHPmyAdmin ist es ein VIEW, aber auch das müsste ich doch per SELECT abfragen können!?
Grüße
Michael
|

17-11-2011, 12:53
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Nein, der Code wird nicht automatisch umgebrochen.
Okay, dann gilt meine erste Antwort. Du hast das View erzeugt und dabei die originale DEFINER-Klausel drin gelassen. Also ist das View auf den originalen Benutzer festgenagelt und kann nicht abgefragt werden, solange dieser nicht existiert.
Lösung (nochmal): Entferne die DEFINER-Klauseln!
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

17-11-2011, 14:31
|
|
francosdad
Registrierter Benutzer
|
|
Registriert seit: Mar 2009
Beiträge: 80
|
|
Danke, aber da ich in MySQL nur Grundkenntnisse habe, noch eine Frage zur Lösung.
Gehe ich richtig in der Annahme, dass die Definier Klauseln beim anlegen der Tabelle gemeint sind!?
Grüße
Michael
|

17-11-2011, 14:49
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Genau, aber beim Anlegen des Views oder eventueller Trigger. Bei normalen Tabellen gibt es so etwas nicht.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

17-11-2011, 19:51
|
|
francosdad
Registrierter Benutzer
|
|
Registriert seit: Mar 2009
Beiträge: 80
|
|
Auch wenn das hier vielleicht nicht richtig ist, habe ich noch eine Frage. Wie kann ich abfragen ob die "VIEW" abfragbar für den aktuellen User ist, so das das Script nicht abbricht. (PHP)
Danke und Grüße
Michael
|

17-11-2011, 20:05
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.482
|
|
PHP-Scripte brechen nicht ab, wenn Datenbankabfragen schief gehen.
Baue eine sinnvolle Fehlerbehandlung ins Script ein.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|