MySQL – root Benutzer absichern und Benutzer anlegen
Bei den neueren MySQL und MariaDB Datenbanken ist nach der frischen Installation der MySQL-Shell Root-Zugang via Socket ohne Passwort möglich. Ich führe ganz kurz auf, wie das abzuschalten ist und wie ein Benutzer für eine Datenbank mit Vollzugriff angelegt werden kann.
Punkt 1: Root Passwort setzen
Wir führen das mitgebrachte Tool zur Absicherung aus und legen unser neues Root Passwort fest, den Rest kann man mit Y bestätigen.
1 | mysql_secure_installation |
Punkt 2: MySQL Shell öffnen
1 | mysql -u root |
Punkt 3: Den Socket zugriff entfernen
1 2 3 4 | USE mysql; UPDATE user SET plugin='' WHERE User='root'; FLUSH PRIVILEGES; EXIT |
Punkt 4: Testen
Es sollte nun kein Zugriff mehr ohne Passwort möglich sein.
1 | mysql -u root -p |
Punkt 5: MySQL Benutzer anlegen
Da man es immer wieder braucht … so legt ihr einen Benutzer an mit Vollzugriff auf eine Datenbank.
1 2 3 4 | CREATE USER wordpress@localhost IDENTIFIED BY '_hier_ein_sicheres_passwort_eintragen_'; GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost'; FLUSH PRIVILEGES; EXIT |
Das Betreiben der Dienste, Webseite und Server machen wir gerne, kostet aber leider auch Geld. Unterstütze unsere Arbeit mit einer Spende. |
Hallo,
leider haben die obigen Befehle dazu geführt, dass ich mich jetzt nicht mehr als root einloggen kann:
mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user ‚root’@’localhost‘ (using password: YES)
Help!
Danke.
Achso zu meinem System: Ubuntu 16.04 mit mysql Version 5.7.25
Im /var/log/mysql/error.log fand ich zum Glück folgenden Hinweis:
Some of the user accounts with SUPER privileges were disabled because of empty mysql.user.plugin value. If you are upgrading from MySQL 5.6 to MySQL 5.7 it means we were not able to substitute for empty plugin column. Probably because of pre 4.1 password hash. If your account is disabled you will need to:
1. Stop the server and restart it with –skip-grant-tables.
2. Run mysql_upgrade.
3. Restart the server with the parameters you normally use.
For complete instructions on how to upgrade MySQL to a new version please see the ‚Upgrading MySQL‘ section from the MySQL manual