Anmeldung bei MySQL nicht möglich, Zugriff verweigert

Anmeldung bei MySQL nicht möglich, Zugriff verweigert

Nach einem Absturz habe ich Ubuntu auf meinem Entwicklungscomputer über die vorherige Installation neu installiert und nachdem ich alle erforderlichen Pakete (einschließlich MySQL-Server und MySQL-Client) neu installiert hatte, habe ich mit der Wiederherstellung der Entwicklungsdatenbank begonnen. Leider kann ich keine Verbindung herstellen.

Das funktioniert :

$ sudo su
# mysql -u root

das tut nicht

$ mysql -u root -p
  • Ich habe versucht, mysql-*alles zu löschen und neu zu installieren.
  • Ich habe versucht, die Konfiguration zu ändern (dh sudo dpkg-reconfigure mysql-server-5.7)
  • Ich habe versucht, das Passwort manuell mithilfe von UPDATEAbfragen zurückzusetzen.
  • Ich habe alles versuchtHier(außer dass die Tabelle userkeine Spalte hat password, sondern eine authentication_stringEins)

Kann mir bitte jemand helfen, das Ding zum Laufen zu bringen?


** Bearbeiten **

mysql> SELECT user, host, authentication_string, password_expired, account_locked FROM user WHERE user = 'root';
+------------------+-----------+-------------------------------------------+------------------+----------------+
| user             | host      | authentication_string | password_expired | account_locked |
+------------------+-----------+-----------------------+------------------+----------------+
| root             | localhost | *<password hash>      | N                | N              |
| root             | %         | *<password hash>      | N                | N              |
+------------------+-----------+-----------------------+------------------+----------------+
5 rows in set (0.00 sec)

Beide rootBenutzer haben das gleiche Passwort, das mit festgelegt wurde PASSWORD('password'), und alle Berechtigungen wurden gelöscht. Anschließend wurde der Dienst neu gestartet.

Im Gegensatz zu dem, was in der Dokumentation steht, sudo dpkg-reconfigure mysql-server-5.7funktioniert das Ausführennichtfordert mich auf, ein neues Passwort für root anzugeben. Der Befehl wird erfolgreich beendet, aber ich werde nie aufgefordert, ein Passwort anzugeben.

Antwort1

Ich habe meine Antwort gefunden,Hier.

pluginDer Wert für den Benutzer war grundsätzlich root@'localhost'nicht mysql_native_password.

UPDATE user SET plugin = 'mysql_native_password' WHERE user = 'root';
FLUSH PRIVILEGES;

hat funktioniert und ich konnte mich endlich ohne Superuser-Berechtigungen anmelden.

Antwort2

MySQL-Berechtigungen wurden wahrscheinlich nicht wiederhergestellt. Die Tatsache, dass Sie sich ohne Berechtigungen beim Server anmelden können, legt nahe, dass Sie das Root-Passwort festlegen und alle anderen Benutzer hinzufügen müssen, die mit ihren jeweiligen Berechtigungen verwendet werden müssen.

verwandte Informationen