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
1 Comment