Debian Stretch Mariadb – Rootlogin phpmyadmin funktioniert nicht mehr

Es ist zwar kein neuer Hut mehr, dass es mit Mariadb in Verbindung mit dem rootlogin in phpmyadmin Probleme gibt, ich möchte es an dieser Stelle aber dennoch erwähnen und eine – meiner Meinung nach gute – Lösung anbieten.

Hintergrund

Bei Mariadb (aktuell in Version 10.1.26-0+deb9u1) ist für den root-user ein unix_socket Plugin aktiv. Dieses Plugin prüft, ob man:

1.) Als Rootuser in der Konsole eingeloggt ist und
2.) den vorhandenen Mariadb-root-user.

Wenn man sich nun bei phpmyadmin als Benutzer root einloggen will, schlägt dies fehl. Klar! In dem Fall meldet man sich ja nicht per Konsole (als User root) bei der Mariadb an, sondern über das Web.

Lösungsweg

Es gäbe nun die Möglichkeit, das Plugin für den Mariadb-Benutzer root zu deaktivieren. (Davon sehe ich hier aber ab). Besser ist es, einen neuen Datenbankbenutzer anzulegen, der -so wie root- auch Vollzugriff auf alle Datenbanken hat, um letztendlich alle Datenbanken per phpmyadmin verwalten zu können.



Im Terminal des Servers  bzw. des Linuxsystems sind folgende Schritte (eingeloggt als root) durchzuführen:

mysql

grant all on *.* to neuerrootuser@localhost (RETURN)
identified by 'deinpasswort' with grant option;

Es ist nun ein weiterer Benutzer mit DB-Rootrechten angelegt worden.

Absicherung der Installation

Es ist immer eine gute Idee, den Befehl

mysql_secure_installation

auszuführen, um einige DB-Einstellungen sicherer zu gestalten. Hierbei kann (und sollte!) auch für den bereits vorhandenen DB-Benutzer „root“ ein Passwort gesetzt werden. (In der Standardkonfiguration hat dieser DB-Benutzer kein Passwort, da ja u.a. auf das unix_socket-Plugin zurückgegriffen wird).

Bestehende MariaDB-Benutzer abfragen / Plugincheck

Will man prüfen, welche User angelegt sind / für wen das oben erwähnte Plugin aktiv ist, begibt man sich abermals in ein Rootterminal und startet folgende Abfrage:

mysql

select user, plugin from mysql.user;