Heim >Datenbank >MySQL-Tutorial >Ausführliche Erläuterung des Problems des vergessenen MySQL-Passworts und des Anmeldefehlers
Der unten stehende Herausgeber bringt Ihnen eine kurze Diskussion über MySQLdas Problem vergessener Passwörter und Anmeldefehler. Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Editor und werfen wir einen Blick darauf.
MySQL-Anmeldekennwort vergessen? Tatsächlich ist die Lösung sehr einfach. Sie müssen nur eine Zeile „jump“ zur Hauptkonfigurationsdatei hinzufügen von mysqlmy.cnf. Wählen Sie einfach die Parameter von „Autorisierungsformular“ aus!
Fügen Sie die folgende Zeile in my.cnf hinzu:
[root@test-huanqiu ~]# vim /etc/my.cnf //在[mysqld]区域里添加 ........ skip-grant-tables //跳过授权表Starten Sie dann den MySQL-Dienst neu und nichts wird passieren Passwort-Anmeldung
[root@test-huanqiu ~]# /etc/init.d/mysqld restartPasswort nach der Anmeldung zurücksetzen
[root@test-huanqiu ~]# mysql mysql> select host,user,password from mysql.user; +--------------------+------+-------------------------------------------+ | host | user | password | +--------------------+------+-------------------------------------------+ | localhost | root | *481ACA1BD6D1E86221244904E9C0FABA33B40B84 | | host-192-168-1-117 | root | | | 127.0.0.1 | root | | | ::1 | root | | | localhost | | | | host-192-168-1-117 | | | +--------------------+------+-------------------------------------------+ 6 rows in set (0.00 sec) mysql> update mysql.user set password=password("123456") where host="localhost" and user="root"; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.01 sec) mysql> select host,user,password from mysql.user; +--------------------+------+-------------------------------------------+ | host | user | password | +--------------------+------+-------------------------------------------+ | localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | | host-192-168-1-117 | root | | | 127.0.0.1 | root | | | ::1 | root | | | localhost | | | | host-192-168-1-117 | | | +--------------------+------+-------------------------------------------+ 6 rows in set (0.00 sec) mysql>
Kommentar die in my.cnf hinzugefügte Zeile erneut und dann MySQL neu starten
[root@test-huanqiu ~]# vim /etc/my.cnf........#skip-grant-tables [root@test-huanqiu ~]# /etc/init.d/mysqld restart [root@test-huanqiu ~]# mysql -p123456mysql>
-------------------------------- - ------------------------------------------------- - ------------------------------------
Eine Falle entdeckt:
MySQL war zuvor vollständig gesichert. Nach der Wiederherstellung stellte ich fest, dass ich mich mit dem vorherigen Passwort nicht anmelden konnte!Verwenden Sie die oben beschriebene Methode, um sich ohne Passwort anzumelden und dann das Passwort zurückzusetzen. Nach dem Zurücksetzen des Passworts können Sie sich jedoch immer noch nicht anmelden.
mysql> select host,user,password from user; Empty set (0.00 sec)
Lösung:
Daten eingeben, dann Passwort zurücksetzen
mysql> insert into user(host,user,password) values("localhost","root","123456"); Query OK, 1 row affected, 3 warnings (0.01 sec) mysql> select host,user,password from user; +-----------+------+----------+ | host | user | password | +-----------+------+----------+ | localhost | root | 123456 | +-----------+------+----------+ 1 row in set (0.00 sec) mysql> update mysql.user set password=password("123456") where host="localhost" and user="root"; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> select host,user,password from user; +-----------+------+-------------------------------------------+ | host | user | password | +-----------+------+-------------------------------------------+ | localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | +-----------+------+-------------------------------------------+ 1 row in set (0.00 sec) mysql> insert into user(host,user,password) values("127.0.0.1","root","123456"); Query OK, 1 row affected, 3 warnings (0.00 sec) mysql> select host,user,password from user; +-----------+------+-------------------------------------------+ | host | user | password | +-----------+------+-------------------------------------------+ | localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | | 127.0.0.1 | root | 123456 | +-----------+------+-------------------------------------------+ 2 rows in set (0.00 sec) mysql> update mysql.user set password=password("123456") where user="root"; Query OK, 1 row affected (0.00 sec) Rows matched: 2 Changed: 1 Warnings: 0 mysql> select host,user,password from user; +-----------+------+-------------------------------------------+ | host | user | password | +-----------+------+-------------------------------------------+ | localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | | 127.0.0.1 | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | +-----------+------+-------------------------------------------+Dann können Sie sich ganz normal mit dem zurückgesetzten Passwort anmelden!
------------------------------------------------------- -------------------------------------------------- -----------------------
MySQL-Anmeldefehler 1:
[root@test-huanqiu ~]# mysql -p123456 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111) [root@test-huanqiu ~]# ps -ef|grep mysql root 28279 1 0 12:55 ? 00:00:00 /bin/sh /usr/local/mysql//bin/mysqld_safe --datadir=/data/mysql/data --pid-file=/data/mysql/data/mysql.pid mysql 29059 28279 0 12:55 ? 00:00:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql/ --datadir=/data/mysql/data --plugin-dir=/usr/local/mysql//lib/plugin --user=mysql --log-error=/data/mysql/data/mysql-error.log --pid-file=/data/mysql/data/mysql.pid --socket=/usr/local/mysql/var/mysql.sock --port=3306 root 30726 11268 0 12:58 pts/2 00:00:00 grep mysqlEs ist ersichtlich, dass der aktuelle Dateipfad von mysql.sock /usr/local/mysql/var/mysql.sock ist,
Lösung : Software-Link erstellen
[root@test-huanqiu ~]# ll /usr/local/mysql/var/mysql.sock rwxrwxrwx. 1 mysql mysql 0 Nov 29 12:55 /usr/local/mysql/var/mysql.sock [root@test-huanqiu ~]# rm -f /var/lib/mysql/mysql.sock [root@test-huanqiu ~]# ln -s /usr/local/mysql/var/mysql.sock /var/lib/mysql/mysql.sockSo ist es in Ordnung
[root@test-huanqiu ~]# mysql -p123456 mysql>
--------------- -------------------------------------------------- ------------------------------------
MySQL starten Fehler gemeldet:
Starting MySQL.... ERROR! The server quit without updating PID file (/data/mysql/data/mysql.pid).
Lösungsversuche:
Installationsverzeichnisses von MySQL auf die Berechtigungen des MySQL-Startbenutzers fest. Ändern Sie es beispielsweise in MySQL: MySQL-Berechtigungen
(8) Versuchen Sie, die MySQL-Daten neu zu initialisieren
Wechseln Sie in das MySQL-Installationsverzeichnis
/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql/data --user=mysql
Verwenden Sie zum Anmelden die vom MySQL
-Server autorisierten Informationen an mysql wird der Fehler wie folgt gemeldet:
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.14' (111)
Mögliche Gründe sind:
1) Möglicherweise liegt ein Netzwerkverbindungsproblem vor. 192.168.1.14 kann erfolgreich gepingt werden. Dies schließt die Situation aus;
2) Die iptables des MySQL-Servers 192.168.1.14 haben Einschränkungen für Port 3306-Verbindungen;
3) Die my.cnf-Datei des MySQL-Servers 192.168.1.14 hat bind_address-Adressbindung. lokale Verbindung ist nicht zulässig;
4) skip_networking ist in der my.cnf-Datei des MySQL-Servers 192.168.1.14 konfiguriert, der MySQL verwendet und nur über den lokalen Socket (Socket-Verbindung) eine Verbindung herstellen kann die Standardmethode der lokalen Verbindung), geben Sie die Überwachung von TCP/IP auf;
5) Beheben Sie DNS-Auflösungsprobleme, überprüfen Sie die my.cnf-Datei des MySQL-Servers 192.168.1.14 Ob darin „skip_name_resolve“ festgelegt ist. Nachdem dieser Parameter hinzugefügt wurde, wird die Hostnamen-Verbindungsmethode nicht unterstützt.
6) Beheben Sie das --port-Problem. Es ist möglich, dass der MySQL-Port 192.168.1.14 auf dem MySQL-Server nicht der Standardport 3306 ist, z. B. Port 3307. Auf diese Weise -- port= muss hinzugefügt werden, wenn eine Remoteverbindung hergestellt wird.
7) Fehlerbehebung bei Benutzer- und Passwortfehlern. Tatsächlich wird 111 bei Benutzer- und Passwortfehlern nicht angezeigt, sodass Probleme mit dem Benutzerpasswort ausgeschlossen sind 1045 (28000): Zugriff für Benutzer „root“@„XXXX“ verweigert (mit Passwort: JA)
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung des Problems des vergessenen MySQL-Passworts und des Anmeldefehlers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!