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
UPDATE
Abfragen zurückzusetzen. - Ich habe alles versuchtHier(außer dass die Tabelle
user
keine Spalte hatpassword
, sondern eineauthentication_string
Eins)
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 root
Benutzer 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.7
funktioniert 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.
plugin
Der 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.