Heim >Datenbank >MySQL-Tutorial >Wie behebt man den MySQL-Fehler 1449: „Der als Definierer angegebene Benutzer existiert nicht'?

Wie behebt man den MySQL-Fehler 1449: „Der als Definierer angegebene Benutzer existiert nicht'?

DDD
DDDOriginal
2024-12-10 11:18:11856Durchsuche

How to Resolve MySQL Error 1449:

MySQL-Fehler 1449: Der als Definierer angegebene Benutzer existiert nicht

Dieser Fehler tritt normalerweise beim Importieren von Ansichten, Triggern oder Prozeduren aus auf eine andere Datenbank, in der der Ersteller des Objekts nicht mehr vorhanden ist existiert.

Ursache:

  • Der Benutzer, der das Objekt in der ursprünglichen Datenbank definiert hat, ist in der aktuellen Datenbank oder auf dem aktuellen Server nicht vorhanden.

Lösungen:

Option 1: Ändern Sie die Definierer

Für Ansichten:

  1. ALTER-Anweisungen mit diesem SQL generieren:

    SELECT CONCAT("ALTER DEFINER=youruser@host VIEW ",
    table_name, " AS ", view_definition, ";")
    FROM information_schema.views
    WHERE table_schema='your-database-name';
  2. Kopieren Sie die ALTER-Anweisungen und führen Sie sie aus.

Für Stored Verfahren:

Verwenden Sie die folgende Syntax und ersetzen Sie „IhrBenutzer“ durch den gewünschten Benutzer:

UPDATE `mysql`.`proc` p SET definer = 'user@%' WHERE definer='root@%'

Option 2: Erstellen Sie den fehlenden Benutzer

  1. Erstellen Sie den fehlenden Benutzer mit dem entsprechenden Privilegien:

    • Für lokale Entwicklungsserver:

      GRANT ALL ON *.* TO 'someuser'@'%' IDENTIFIED BY 'complex-password';
      FLUSH PRIVILEGES;
    • Für MariaDB:

      GRANT ALL PRIVILEGES ON *.* TO 'someuser'@'%' IDENTIFIED BY 'complex-password';
      FLUSH PRIVILEGES;
  2. Gewähren Sie nur das Notwendige Privilegien.

Das obige ist der detaillierte Inhalt vonWie behebt man den MySQL-Fehler 1449: „Der als Definierer angegebene Benutzer existiert nicht'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn