Der MySQL Server unter Debian 8 nutze noch die mySQL Datenbank. Debian 9 hingegen setzt mit dem mySQL Server auf die Opensource basierte mariaDB Datenbank. Das Einrichten gestaltet sich bei dem MariaDB basierten MySQL Server genauso einfach wie beim MySQL Server mit MySQL Datenbank unter Debian 8.
Ein wenig Verwunderung löst allerdings die fehlende Eingabeaufforderung für das Passwort des Rootaccounds aus – es wird standartmäßig kein Passwort gesetzt. Das hat Vor,- und Nachteile.
Wird der Server über die Kommandozeile administriert, vereinfacht das unix_socket Plugin den Loginprozess in der Form, dass ein Rootlogin über das Rootkonto des Hosts keine Passwortfrage mehr generiert. Ein Rootlogin auf dem mySQL Server ist somit via folgendem Befehl möglich :
1 | sudo mysql -u root |
Das aktivierte unix_socket Plugin hat allerdings einen entscheiden Nachteil, wenn für die Datenbankserveradministration externe Werkzeuge wie phpMyAdmin o.a. genutzt werden. Ein Rootlogin ohne Terminial ist nicht mehr möglich. Da phpMyAdmin unter dem Benutzer www-data läuft funktioniert der mySQL Rootlogin über phpMyAdmin mit aktivierten Plugin nicht mehr. Um weiterhin mit phpMyAdmin und Rootrechten arbeiten zu können empfiehlt es sich daher einen weiteren Rootaccound mit vollen Zugriffsrechten anzulegen und diesen für externe Werkzeuge wie phpMyAdmin zu nutzen. Das Deaktivieren des Unix_socket Plugins ist eher suboptimal, da einige Programme beim Einrichten ihrer Konfigurationen einen MySQL Rootlogin ohne Passwortabfrage erwarten.
Ein weiterer Rootaccound kann mit folgenden Befehlen angelegt werden :
1 2 3 | sudo mysql -u root grant all on *.* to root2@localhost identified by 'geheim' with grant option; exit |
Sollte es dennoch nötig sein für den Rootaccound des MySQL Servers ein Passwort zu setzen und das Unix_socket Plugin zu deaktivieren ist dies wie folgt zu realisieren:
Rootpasswort für den mySQL Server setzen :
1 2 3 | sudo mysql -u root MariaDB [(none)]> update mysql.user set password=password('geheim') where user='root'; MariaDB [(none)]> flush privileges; |
Unix_socket Plugin deaktivieren :
1 2 3 4 5 | sudo mysql -u root -p Enter password: ******* select user,host,password,plugin from mysql.user; update mysql.user set plugin='' where user='root'; flush privileges; |
Eine Reaktivierung des Unix_socket Plugins für den Rootaccound sowie das Deaktivieren des Rootpasswortes kann mit folgenden Befehlen erreicht werden:
1 2 3 4 5 | sudo mysql -u root SET PASSWORD FOR root@localhost=PASSWORD(''); select user,host,password,plugin from mysql.user; update mysql.user set plugin='unix_socket' where user='root'; flush privileges; |