Einführung
Bei der Arbeit mit MySQL können Benutzer auf Folgendes stoßen: eine Fehlermeldung, die darauf hinweist, dass der definierende Benutzer für ein Datenbankobjekt nicht existiert. Dieser Fehler, Code 1449, tritt typischerweise beim Importieren von Objekten aus einer anderen Datenbank oder einem anderen Server auf, bei dem der ursprüngliche definierende Benutzer nicht mehr existiert.
Ursachen
Der definierende Benutzer ist der Benutzer unter dem eine Datenbankansicht, ein Trigger oder eine Prozedur erstellt wurde. Wenn das Datenbankobjekt in ein anderes System importiert wird, muss der definierende Benutzer auch auf dem Zielsystem vorhanden sein. Wenn der definierende Benutzer nicht existiert, gibt MySQL den Fehler 1449 aus.
Lösungen
1. Ändern Sie den Definierer
Um dieses Problem zu beheben, können Sie den Definiererbenutzer in einen Benutzer ändern, der auf dem Zielsystem vorhanden ist. Dies kann während des Importvorgangs erfolgen, indem die DEFINER-Anweisung aus dem Dump entfernt wird.
Wenn das Objekt bereits importiert wurde, können Sie den Definierer später mit den folgenden Schritten ändern:
Für Ansichten:
SELECT CONCAT("ALTER DEFINER=youruser@host VIEW ", table_name, " AS ", view_definition, ";") FROM information_schema.views WHERE table_schema='your-database-name';
Für gespeicherte Prozeduren:
UPDATE `mysql`.`proc` p SET definer = 'user@%' WHERE definer='root@%';
2. Erstellen Sie den fehlenden Benutzer
Wenn der definierende Benutzer auf dem Zielsystem nicht vorhanden ist, können Sie ihn mit der GRANT-Anweisung erstellen. Ersetzen Sie „someuser“ durch den Namen des fehlenden Benutzers:
GRANT ALL ON *.* TO 'someuser'@'%' IDENTIFIED BY 'complex-password'; FLUSH PRIVILEGES;
Zusätzliche Überlegungen
Durch Befolgen dieser Schritte können Sie Fehler 1449 beheben und die Datenbank erfolgreich importieren oder verwalten Objekte, die definierende Benutzer haben.
Das obige ist der detaillierte Inhalt vonMySQL-Fehler 1449: Wie behebt man das Problem „Definer-Benutzer existiert nicht'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!