
Ich musste mein Linode auf Debian 9 neu aufbauen, da ich die Quellen aus meiner vorherigen Frage nicht zum Laufen bringen konnte.
ich benutztediese Installationsanleitungum alles neu zu konfigurieren und auf der neuen Debian-Distribution neu zu installieren.
Zuvor habe ich jedoch ein Backup erstellt mit
$ mysqldump --add-drop-table -h vps.sensation-experience.com -u wordpress -p wordpressDB > backup.sql
und es auf meiner externen Festplatte gespeichert.
Nachdem ich MariaDB eingerichtet und das sichere Skript zum Erstellen eines Root-Passworts ausgeführt, den Hostnamen und die Hosts-Dateien geändert und den Zugriff vom lokalen Host verweigert hatte, habe ich versucht, diese Zeile auszuführen:
mysql --user wordpress --password < backup.sql
Beachten Sie, dass ich mich bereits im Verzeichnis befand, in dem sich das Backup befand. Der Fehler, den ich erhalte, ist
ERROR 1698 (28000): Access denied for user 'wordpress'@'localhost'
Gibt es eine Möglichkeit, dies zu umgehen, oder sollte ich eine neue Datenbank erstellen und einfach eine zuvor exportierte XML verwenden und stattdessen diese importieren?
Antwort1
Geben Sie dem Backup-Benutzer Zugriff wie unten beschrieben,
MariaDB [(none)]> GRANT LOCK TABLES, SELECT ON *.* TO 'wordpress'@'localhost' IDENTIFIED BY 'your-password';
MariaDB [(none)]> flush privileges;
Und danach versuchen Sie es erneut.
Antwort2
Sie haben wahrscheinlich wordpress
noch keinen Benutzer in MariaDB. Und Sie benötigen möglicherweise umfangreichere Berechtigungen als Ihr wordpress
Benutzer, um ein Backup wiederherzustellen. Ich empfehle, als Datenbankbenutzer wiederherzustellen root
. Auf Debian-Systemen ist der einfachste Weg, sich bei MariaDB anzumelden, root
die Ausführung mysql
ohne Argumente, während Sie als Benutzer am System angemeldet sind root
:
root@tux:~$ echo "CREATE DATABASE wordpressDB;" | mysql
root@tux:~$ mysql < backup.sql
Hinweis:nichtGeben Sie an localhost
, dass Sie sich über den Unix-Domain-Socket verbinden möchten, der standardmäßig auf Debian-Systemen eingerichtet wird. Sie müssen weder Benutzername noch Passwort angeben, da jeder mit Zugriff auf den Unix-Domain-Socket (standardmäßig sollte das nur der Systembenutzer sein root
) automatisch über root
Berechtigungen in MariaDB verfügt.