Login in phpMyAdmin geht nicht als ‚root‘

phpMyAdmin Logo

Seit der Version 5.7 hat sich in MySQL einiges geändert. Bei der Anmeldung wird nun z.B. unter bestimmten Umständen das Plugin auth_sock verwendet und das führt z.B. bei Ubuntu 18.04 und der Installation des MySQL-Servers und phpMyAdmin aus dem Standard-Repository dazu, dass der Login in phpMyAdmin als root nicht mehr funktioniert, da phpMyAdmin zwingend ein Kennwort verlangt. Zwar kann man die Kennwortabfrage in der Konfiguration abschalten, aber dadurch würde man eine beträchtliche Sicherheitslücke schaffen.

root-Kennwort und Plugin ändern

Bei einer neuen Installation hat root von MySQL nicht immer ein Passwort, was man aus Sicherheitsgründen natürlich ändern sollte. Entgegen dem Befehl in Version 5.6 und davor

mysql> USE mysql;
mysql> UPDATE users SET password=PASSWORD('xxx') WHERE user='root';
mysql> EXIT;

erfolgt das Setzen des Passworts ab Version 5.6 mit

mysql> UPDATE mysql.user SET authentication_string=PASSWORD('xxx') WHERE user='root';
mysql> EXIT;

Nach dem Neustart von MySQL funktioniert beim Aufruf der mySQL-Konsole der Login mit Passwort.

:~$ mysql -u root -p

Beim Login in phpMyAdmin bekommt man jetzt allerdings die Fehlermeldung
Access denied for user ‚root’@’localhost‘

Die Ursache dafür liegt an dem seit Version 5.7 verwendeten Plugin auth_socket für die Anmeldung, wenn für root kein Passwort angegeben wurde. Dadurch wird der Login an den Benutzeraccount gebunden, was zur Folge hat, dass man sich außerhalb der MySQL-Konsole nicht mehr anmelden kann. Daher muss in MySQL noch das für die Anmeldung eingetragene Plugin geändert werden.

mysql> UPDATE mysql.user SET plugin='mysql_native_password' WHERE User='root';
mysql> EXIT;

Startet man MySQL neu, dann klappt auch der Login in phpMyAdmin wieder.

MySQL 5.7 vollständig deinstallieren

Ich füge das hier an, weil ich im Zuge des Experimentierens mit Tablespaces eine MySQL-Installation beschädigt habe und alle Reperaturversuche gescheitert sind bzw. keine relevanten Daten vorhanden waren und ich nicht unnötig Zeit vergeuden wollte. Andernfalls muss man die Datenbanken natürlich zuvor sichern, denn mit dieser Methode wird wirklich alles von MySQL komplett entfernt.
Zunächst entfernt man die Programmkomponenten mit

:~$ sudo apt-get remove --purge mysql-server mysql-client mysql-common mysql-server-core-5.7 mysql-client-core-5.7

Danach werden die Verzeichnisse entfernt und nicht mehr benötigte Abhängigkeiten entfernt.

:~$ sudo rm -rf /var/lib/mysql
:~$ sudo rm -rf /etc/mysql
:~$ sudo apt autoremove

Jetzt kann MySQL wieder sauber installiert werden

:~$ sudo apt-get install mysql-server

Ähnliche Artikel:
-> phpMyAdmin – Tabellen verstecken und wieder anzeigen

Buy Me a Coffee at ko-fi.com

You May Also Like

1 Comment

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Aus persönlichen Gründen...

... kann ich den Blog im Moment leider nicht wie gewohnt betreuen und Anfragen zeitnah beantworten. Lediglich die technische Funktionalität versuche ich aufrecht zu erhalten. Sollte es trotzdem was Neues hier geben, dann schreibe ich eine Info in die Telegram-Gruppe.


In der Telegram-Gruppe können Sie sich weiterhin mit anderen Lesern von Împuşcătura austauschen.

Zur Telegram-Gruppe