Ich arbeite an Xubuntu 15.04. Ich habe den MariaDB-Server bereits auf verschiedenen Systemen installiert und wurde bei der Installation immer nach einem root-Passwort gefragt. Diesmal kann ich mich jedoch nicht erinnern, nach dem Passwort gefragt worden zu sein. Wenn ich versuche, mich ohne ein Passwort (oder ein leeres Passwort) anzumelden, erhalte ich die Access denied for user 'root'@'localhost'
Fehlermeldung. Ich habe versucht, das Paket vollständig zu deinstallieren
sudo apt-get remove mariadb-server
sudo apt-get purge mariadb-server
Bei der Neuinstallation wurde ich immer noch nicht nach dem root-Passwort gefragt.
Ich habe den mysqld --skip-grant-tables
Ansatz von
MySQL ausprobiert, wie man den Zugriff für Benutzer 'root' @ 'localhost' verweigert . Ich kann das Passwort für den Root-Benutzer in der MySQL-Datenbank ändern - zumindest der Hash-Wert ändert sich - aber ich kann mich nach einem Neustart des MySQL-Servers immer noch nicht mit dem neuen Passwort anmelden. Ich bekomme immer noch den gleichen Fehler.
Der Benutzer debian-sys-maint existiert nicht. Ich kann es also nicht verwenden, um irgendetwas zu reparieren.
Irgendwelche Ideen, was ich sonst noch versuchen könnte?
Antworten:
Sie müssen das Passwort zurücksetzen. also dafür
quelle
plugin: auth_socket
standardmäßig aktiviert ist. Mit anderen Worten, es muss nicht mehr verwendet werden,--skip-grant-tables
wie es in früheren MySQL-Versionen erforderlich gewesen wäre. (Auch technisch bedeutet diese Maßnahme nicht "Zurücksetzen des Passworts", sondern Deaktivieren eines Plugins.)Die Idee mit dem neuen Setup ist, dass Sie überhaupt keine Passwörter verwenden sollten. Weitere Informationen finden Sie im UNIX_SOCKET-Authentifizierungs-Plugin .
Besonders relevant ist der Inhalt von /usr/share/doc/mariadb-server-10.0/README.Debian.gz unter Ubuntu 16.04:
Wenn Sie dieses Plug-In für root deaktivieren und ein Kennwort festlegen, wird der tägliche Cron-Job abgebrochen, da davon ausgegangen wird, dass er sich ohne Kennwort, jedoch mit dem Plug-In als root anmeldet.
Später heißt es:
Es sieht also so aus, als sollten Passwörter nicht mehr von Anwendungen verwendet werden.
quelle
"So if you disable that plug-in for root and set a password, the daily cron job will break as it's assuming it will log in as root without a password..."
Die nicht offensichtliche Auswirkung der Aktivierung des UNIX_SOCKET-Authentifizierungs-Plugins (die jetzt die Standardeinstellung ist) ist, dass die Authentifizierung als Root-Datenbankbenutzer mit einem Kennwort deaktiviert ist. Nirgendwo auf mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin wird diese erhebliche Einschränkung erwähnt. Dementsprechend ist es nicht möglich, sich zB über SSH als root anzumelden.Ich habe das Problem folgendermaßen gelöst:
Das Root-Passwort für MySQL (MariaDB) kann nicht zurückgesetzt werden
Man muss das Plugin-Feld von mysql.user für alle Roots in eine leere Zeichenkette ändern.
quelle
Ich habe diesen Befehl ausgeführt, direkt nach der Installation:
Im ersten Schritt ist das Passwort leer, drücken Sie einfach die Eingabetaste.
quelle
Ich hatte das gleiche Problem mit einem Raapberry Pi mit Stretch. Meine Lösung bestand darin, einen neuen Benutzer mit allen Berechtigungen wie folgt zu erstellen:
Jetzt kann ich mich einloggen und uns den Benutzer "admin" als Superuser geben.
Ich hoffe das wird jemandem helfen.
quelle
Einfach benutzen
sudo mysql -u root
- fertigDetails: Neuere Versionen authentifizieren sich bei MySQL mithilfe der Systemauthentifizierung. Wenn Sie also auf das Betriebssystem zugreifen können, wird davon ausgegangen, dass Sie auch als Datenbank-Root angemeldet sind. Sie können dies durch Ausgabe bestätigen
sudo mysql -u root -e "USE mysql; SELECT User, Host, plugin FROM mysql.user;"
. Sie sollten so etwas sehen (vielleicht mitauth_socket
in anderen Distributionen)quelle