Bevor ich etwas vermassle, wenn ich mich mit anmelde $ mysql -u root -p
und Datenbanken zeige:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| game_data |
| test |
+--------------------+
Dann habe ich versucht, einen neuen Benutzer anzulegen und festgestellt, dass mit den PRIVILEGES etwas nicht stimmt.
Also habe ich die neuen Benutzer gelöscht, und ich glaube, ich habe versehentlich 'root' und 'Admin' entfernt.
Dann versuche ich erneut, "root" zu erstellen, erhalte jedoch den Fehler "Zugriff verweigert", wenn alle Berechtigungen gewährt werden.
mysql> CREATE USER 'root'@'localhost' IDENTIFIED BY 'password';
mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'password' with grant option;
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Wenn ich mich erneut mit MySQL anmelde $ mysql -u root -p
und Datenbanken zeige,
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
Alle anderen Datenbanken sind weg.
Wie behebe ich MySQL jetzt?
Ich kann die Datenbank 'mysql' nicht finden, kann keine Datenbank erstellen, keinen Benutzer erstellen, alles, was ich versuche, wird einen Fehler bekommen.
FEHLER 1045 (28000): Zugriff für Benutzer 'root' @ 'localhost' verweigert (mit Kennwort: JA).
Sollte ich MySQL mit MacPorts neu installieren? Bei einer Neuinstallation verliere ich die Datenbank game_data
, oder?
quelle
-p
und dem Passwort. Ich weiß, dass es albern ist, könnte aber jemandem helfen.Antworten:
Folgen Sie den unteren Schritten.
Starten Sie die MySQL Server-Instanz oder den Daemon mit der
--skip-grant-tables
Option (Sicherheitseinstellung).Führen Sie diese Anweisungen aus.
Wenn Sie auf das unbekannte Feld Passwortfehler stoßen, verwenden Sie:
Starten Sie abschließend die Instanz / den Daemon ohne die
--skip-grant-tables
Option neu.Sie sollten nun in der Lage sein, sich mit Ihrem neuen Passwort zu verbinden.
Passwort eingeben:
my_password
Behebung des MySQL-Fehlers "ibdata1 kann nicht gesperrt werden"
quelle
Keines der oben genannten war hilfreich für mich. Ich musste die Plugin-Methode löschen. In 5.6 konnte ich Folgendes tun:
In 5.7 musste ich Folgendes tun:
Laut Dokumentation sollte das Plug-in bei einer leeren Zeichenfolge standardmäßig mysql_native_password haben, wird jedoch möglicherweise durch einen leeren Kennwort-Hash verwirrt. Weitere Informationen finden Sie in der Dokumentation hier: https://dev.mysql.com/doc/refman/5.7/en/native-authentication-plugin.html
quelle
set plugin='mysql_native_password'
habe es für mich getan, danke! Als Referenz: dev.mysql.com/doc/refman/5.7/en/…Stellen Sie außerdem sicher, dass der benötigte Datensatz in der Tabelle
user
ein leeresplugin
Feld enthält (dies kann beispielsweise sein"unix_socket"
).Seit Version 5.5.7 unterstützt mysql verschiedene Auth-Plugins: https://dev.mysql.com/doc/refman/5.6/en/authentication-plugins.html
Wenn Sie also ein nicht leeres
plugin
Feld haben, wird das Passwort ignoriert und es wird eine Warnung im MySQL-Fehlerprotokoll angezeigt (für mich ist es das/var/log/mysql/error.log
):[Warning] 'user' entry 'root@localhost' has both a password and an authentication plugin specified. The password will be ignored.
quelle
plugin
vonmysql_native_password
.Sie können so etwas sehen;
Sichern der MySQL Server-Bereitstellung.
Wenn du siehst, heißt es
Sehen Sie sich die letzten 10 Minuten dieses Videos an und erfahren Sie, wie Sie es tun.
quelle
Versuch es:
quelle
--no-defaults --force
Schalter tun? Andernfalls handelt es sich um ein VLQ-Duplikat der oben angegebenen, akzeptierten Antwort.ERROR 1054 (42S22): Unknown column 'Password' in 'field list'
In meinem Fall hatte ich eine Datenbankbeschädigung, nach dem Neustart von mysql unter Debian war der root-Login ohne Passwort. Die Lösung war:
Einige andere Antworten haben auch das native_password-Plugin erwähnt, aber so können Sie es tun, ohne umständlich herumzuspielen. So soll es geändert werden.
quelle