Meine Antwort auf "Ich möchte Passwort verwenden. Was soll ich tun?" ist:
"Nein, wahrscheinlich nicht!" (je nach Einsatz der App - siehe Kommentare unten)
Mit Ubuntu 15.10 und später installiert MariaDB mit dem unix_socket Benutzer-Authentifizierungs-Plug standardmäßig aktiviert: https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/
Mit einem frischen installieren Login mit sudo mysql -uroot
und ausführen:
SELECT User, Password, Host, plugin from mysql.user WHERE user = 'root';
Sie sollten einen einzelnen Benutzer sehen. Dies bedeutet auch, dass Sie sich nicht remote als root mit der Standardinstallation anmelden können (eine der Aufgaben, die mysql_secure_installation
ausführt).
Ich würde empfehlen, dies zu lassen und einen Nicht-Root-Benutzer mit den entsprechenden Berechtigungen für Ihre Anwendung zu erstellen.
Wenn Sie jedoch unbedingt einen Passwort-authentifizierten Root-Benutzer benötigen, müssen Sie das Plugin zu mysql_native_password
ändern.
UPDATE mysql.user SET plugin = 'mysql_native_password', Password = PASSWORD('secret') WHERE User = 'root';
FLUSH PRIVILEGES;
Jetzt quit
dann log-in mit mysql -uroot -p
. Wenn Sie den Dienst neu starten müssen, müssen Sie statt nur sudo systemctl restart mysql
drei Befehle ausführen. Ich bin ziemlich sicher, dass es eine Ergänzung zu einer .cnf
Datei gibt, die Sie machen können, damit der Neustart wie erwartet funktioniert, aber ich konnte es nicht leicht herausfinden. Grundsätzlich ist die Lektion unix_socket
.
sudo systemctl stop mysql
sudo kill -9 $(pgrep mysql)
sudo systemctl start mysql
'SELECT Benutzer, Host, Passwort FROM mysql.user;' - kann Hinweis geben, was falsch ist. –
Sieht aus wie das gleiche Problem wie dieses: http://StackOverflow.com/a/30417831/6451083 MariaDB 10.0.17 kann nicht auf Root mit Nicht-Root-Benutzer zugreifen. – ludofet