Wenn Sie tatsächlich ein Root-Passwort festgelegt haben und es gerade verloren/vergessen haben:
- MySQL stoppen
-
Starten Sie es manuell mit der Option skip-grant-tables neu:
mysqld_safe --skip-grant-tables
-
Öffnen Sie nun ein neues Terminalfenster und führen Sie den MySQL-Client aus:
mysql -u root
-
Setzen Sie das Root-Passwort manuell mit diesem MySQL-Befehl zurück:
UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
Wenn Sie MySQL 5.7 verwenden (überprüfen Sie dies mit mysql --version im Terminal), lautet der Befehl:UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
-
Leeren Sie die Privilegien mit diesem MySQL-Befehl:
FLUSH PRIVILEGES;
Von http://www.tech-faq.com/reset-mysql-password.shtml
(Vielleicht ist das nicht das, was du brauchst, Abs, aber ich denke, es könnte für Leute nützlich sein, die in Zukunft über diese Frage stolpern)
Versuchen Sie, sich ohne Passwort zu verbinden:
mysql -u root
Ich glaube, die anfängliche Voreinstellung ist kein Passwort für das Root-Konto (das natürlich so schnell wie möglich geändert werden sollte).
Verwenden Sie diesen Befehl, um die mögliche Ausgabe zu überprüfen
mysql> select user,host,password from mysql.user;
Ausgabe
mysql> select user,host,password from mysql.user;
+-------+-----------------------+-------------------------------------------+
| user | host | password |
+-------+-----------------------+-------------------------------------------+
| root | localhost | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root | localhost.localdomain | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root | 127.0.0.1 | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| admin | localhost | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| admin | % | |
+-------+-----------------------+-------------------------------------------+
5 rows in set (0.00 sec)
- In diesem Benutzer darf sich admin nicht von einem anderen Host anmelden, obwohl Sie die Erlaubnis erteilt haben. Der Grund dafür ist, dass der Benutzer admin nicht durch ein Passwort identifiziert wird.
-
Gewähren Sie dem Benutzer admin mit dem GRANT-Befehl noch einmal das Passwort
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED by 'password'
Überprüfen Sie dann die GRANT LIST, die Ausgabe wird wie sein
seinmysql> select user,host,password from mysql.user;
+-------+-----------------------+-------------------------------------------+
| user | host | password |
+-------+-----------------------+-------------------------------------------+
| root | localhost | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root | localhost.localdomain | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root | 127.0.0.1 | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| admin | localhost | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| admin | % | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
+-------+-----------------------+-------------------------------------------+
5 rows in set (0.00 sec)
Wenn dem gewünschten Benutzer, z. B. Benutzer 'admin', die Anmeldung gestattet werden muss, verwenden Sie einmal den GRANT-Befehl und führen Sie den Befehl aus.
Jetzt sollte der Benutzer sich anmelden dürfen.