Access denied for user 'admin'@'localhost' (using password: YES)

Symptome

Das Plesk Backup eines Abonnements kann nicht ausgeführt werden, da die Verbindung zum MySQL-Server fehlgeschlagen ist. In dem Backup-Protokoll entsteht folgender Eintrag:


mysqldump: Got error: 1045: "Access denied for user 'admin'@'localhost' (using password: YES)" when trying to connect



Ursache

Das Problem entsteht, da die MySQL-Authentifizierung zwischen localhost, 127.0.0.1 und ::1 unterscheidet und gleichzeitig die MySQL-Option skip-name-resolve aktiv ist.



Lösung

Das Problem kann behoben werden, indem ein zusätzlicher MySQL-Benutzer für den Plesk admin Benutzer erzeugt wird.


Verbinden Sie sich mit dem Server via SSH

Öffnen Sie die MySQL-Shell mithilfe des Befehls:

MYSQL_PWD=$(cat /etc/psa/.psa.shadow) mysql -uadmin


Prüfen Sie zunächst die existierenden admin Benutzer:

SELECT user,host FROM mysql.user WHERE user = 'admin';


Beispiel-Ausgabe:

MariaDB [(none)]> SELECT user,host FROM mysql.user WHERE user = 'admin';
+-------+-----------+
| User  | Host      |
+-------+-----------+
| admin | localhost |
+-------+-----------+
1 row in set (0,001 sec)


Erzeugen Sie einen neuen admin Benutzer, sofern der fehlerhafte Host aus dem vorherigen Befehl nicht in der Ausgabe enthalten ist:

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'127.0.0.1' IDENTIFIED BY '<passwort kundencenter>' WITH GRANT OPTION;


Ersetzen Sie <passwort kundencenter> durch das Plesk Admin-Passwort aus dem Passwort-Tresor des Servers im Kundencenters.


plesk bin admin --set-admin-password -passwd '<passwort kundencenter>'


Verwenden Sie als Passwort das im Kundencenter abgebildete Passwort oder generieren Sie ein neues Passwort für den admin Benutzer mithilfe von secret.creoline.com.


Sofern Sie ein neues Passwort verwenden, sollte dies im Kundencenter im Anschluss entsprechend ebenfalls geändert werden, um die Single-Sign-On-Funktion wiederherzustellen.

Mehr Informationen zum Plesk Single-Sign-On


Verbindungstest

Zum Testen der Verbindung über die IP-Adresse kann folgender Befehl verwendet werden:

MYSQL_PWD=$(cat /etc/psa/.psa.shadow) mysqlcheck -c -u admin -h 127.0.0.1 --all-databases


Im Anschluss kann das Backup in Plesk erneut angestoßen werden.