Eine kurze Diskussion über das Problem des vergessenen MySQL-Passworts und des Anmeldefehlers

Eine kurze Diskussion über das Problem des vergessenen MySQL-Passworts und des Anmeldefehlers

Wenn Sie Ihr MySQL-Anmeldekennwort vergessen, ist die Lösung eigentlich ganz einfach: Sie müssen lediglich eine Zeile mit der Parameterauswahl „Autorisierungstabelle überspringen“ in die MySQL-Hauptkonfigurationsdatei my.cnf einfügen!

Fügen Sie my.cnf die folgende Zeile hinzu:

[root@test-huanqiu ~]# vim /etc/my.cnf //Im Bereich [mysqld] hinzufügen
........
skip-grant-tables //Autorisierungstabelle überspringen

Starten Sie dann den MySQL-Dienst neu und Sie können sich ohne Passwort anmelden

[root@test-huanqiu ~]# /etc/init.d/mysqld neu starten

Passwort nach dem Login zurücksetzen

[root@test-huanqiu ~]#mysql 
mysql> wähle Host, Benutzer, Passwort aus mysql.user;
+--------------------+------+------------------------------------------+
| Host | Benutzer | Passwort |
+--------------------+------+------------------------------------------+
| lokaler Host | root | *481ACA1BD6D1E86221244904E9C0FABA33B40B84 |
| Host-192-168-1-117 | Wurzel | |
| 127.0.0.1 | Wurzel | |
| ::1 | Wurzel | |
| lokaler Host | | |
| Gastgeber-192-168-1-117 | | |
+--------------------+------+------------------------------------------+
6 Zeilen im Satz (0,00 Sek.)

mysql> aktualisiere mysql.user und setze password=password("123456"), wobei host="localhost" und user="root";
Abfrage OK, 1 Zeile betroffen (0,02 Sek.)
Übereinstimmende Zeilen: 1 Geändert: 1 Warnungen: 0

mysql> Berechtigungen leeren;
Abfrage OK, 0 Zeilen betroffen (0,01 Sek.)

mysql> wähle Host, Benutzer, Passwort aus mysql.user;
+--------------------+------+------------------------------------------+
| Host | Benutzer | Passwort |
+--------------------+------+------------------------------------------+
| lokaler Host | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| Host-192-168-1-117 | Wurzel | |
| 127.0.0.1 | Wurzel | |
| ::1 | Wurzel | |
| lokaler Host | | |
| Gastgeber-192-168-1-117 | | |
+--------------------+------+------------------------------------------+
6 Zeilen im Satz (0,00 Sek.)

MySQL> 

Kommentieren Sie die in my.cnf hinzugefügte Zeile erneut aus und starten Sie MySQL neu.

[root@test-huanqiu ~]# vim /etc/my.cnf
........
#Grant-Tabellen überspringen

[root@test-huanqiu ~]# /etc/init.d/mysqld neu starten

[root@test-huanqiu ~]# mysql -p123456
MySQL>

----------------------------------------------------------------------------------------------------------------------------------

Eine Grube gefunden:

Ich hatte zuvor ein vollständiges Backup von MySQL durchgeführt. Nach der Wiederherstellung stellte ich fest, dass ich mich nicht mehr mit dem vorherigen Passwort anmelden konnte!

Melden Sie sich mit der oben beschriebenen Methode ohne Kennwort an und setzen Sie anschließend das Kennwort zurück. Nach dem Zurücksetzen des Kennworts werden Sie jedoch feststellen, dass Sie sich immer noch nicht anmelden können.

Habe schließlich herausgefunden, dass es daran lag, dass der Inhalt der mysql.user-Tabelle gelöscht wurde!

mysql> wähle Host, Benutzer, Passwort vom Benutzer aus;
Leerer Satz (0,00 Sek.)

lösen:

Daten eingeben und Passwort zurücksetzen

mysql> in Benutzer einfügen (Host, Benutzer, Passwort) Werte („localhost“, „root“, „123456“);
Abfrage OK, 1 Zeile betroffen, 3 Warnungen (0,01 Sek.)

mysql> wähle Host, Benutzer, Passwort vom Benutzer aus;
+--------------+------+----------+
| Host | Benutzer | Passwort |
+--------------+------+----------+
| lokaler Host | Wurzel | 123456 |
+--------------+------+----------+
1 Zeile im Satz (0,00 Sek.)

mysql> aktualisiere mysql.user und setze password=password("123456"), wobei host="localhost" und user="root";
Abfrage OK, 1 Zeile betroffen (0,01 Sek.)
Übereinstimmende Zeilen: 1 Geändert: 1 Warnungen: 0

mysql> wähle Host, Benutzer, Passwort vom Benutzer aus;
+-----------+------+------------------------------------------+
| Host | Benutzer | Passwort |
+-----------+------+------------------------------------------+
| lokaler Host | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+------+------------------------------------------+
1 Zeile im Satz (0,00 Sek.)
mysql> in Benutzer einfügen (Host, Benutzer, Passwort) Werte("127.0.0.1","root","123456");
Abfrage OK, 1 Zeile betroffen, 3 Warnungen (0,00 Sek.)

mysql> wähle Host, Benutzer, Passwort vom Benutzer aus;
+-----------+------+------------------------------------------+
| Host | Benutzer | Passwort |
+-----------+------+------------------------------------------+
| lokaler Host | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| 127.0.0.1 | Wurzel | 123456 |
+-----------+------+------------------------------------------+
2 Zeilen im Satz (0,00 Sek.)

mysql> mysql.user aktualisieren, Passwort festlegen=Passwort("123456"), wobei Benutzer="root";
Abfrage OK, 1 Zeile betroffen (0,00 Sek.)
Übereinstimmende Zeilen: 2 Geändert: 1 Warnungen: 0

mysql> wähle Host, Benutzer, Passwort vom Benutzer aus;
+-----------+------+------------------------------------------+
| Host | Benutzer | Passwort |
+-----------+------+------------------------------------------+
| lokaler Host | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| 127.0.0.1 | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+------+------------------------------------------+

Anschließend kannst Du Dich mit dem zurückgesetzten Passwort ganz normal anmelden!

------------------------------------------------------------------------------------------------------------------
MySQL-Anmeldefehler 1:

[root@test-huanqiu ~]# mysql -p123456
FEHLER 2002 (HY000): Verbindung zum lokalen MySQL-Server über Socket '/var/lib/mysql/mysql.sock' nicht möglich (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 Punkte/2 00:00:00 grep mysql

Es ist ersichtlich, dass der aktuelle Dateipfad mysql.sock /usr/local/mysql/var/mysql.sock ist.

Lösung: Erstellen Sie einen Softlink

[root@test-huanqiu ~]# ll /usr/local/mysql/var/mysql.sock
rwxrwxrwx. 1 mysql mysql 0 29. November 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.sock

Das ist in Ordnung.
[root@test-huanqiu ~]# mysql -p123456
MySQL>

----------------------------------------------------------------------------------------------------
Beim Starten von MySQL tritt ein Fehler auf:

MySQL wird gestartet.... FEHLER! Der Server wurde beendet, ohne die PID-Datei (/data/mysql/data/mysql.pid) zu aktualisieren.

Lösungsversuche:

(1) Berechtigungsfragen

Möglicherweise verfügt die Datei mysql.pid nicht über Schreibberechtigung. Setzen Sie die Berechtigungen des MySQL-Installationsverzeichnisses und des Datenverzeichnisses auf die Berechtigungen des MySQL-Startbenutzers. Beispielsweise werden alle Berechtigungen in mysql:mysql geändert.

(2) Möglicherweise ist bereits ein MySQL-Prozess im Prozess vorhanden

ps -ef|grep mysql Wenn ein MySQL-Prozess vorhanden ist, beenden Sie ihn und versuchen Sie, MySQL neu zu starten

(3) MySQL wurde möglicherweise mehrfach auf der Maschine installiert, und Restdaten haben möglicherweise den Start des Dienstes beeinträchtigt.
Gehen Sie zum MySQL-Datenverzeichnis und prüfen Sie, ob mysql-bin.index vorhanden ist. Löschen Sie es sofort, es ist der Übeltäter!

(4) Wenn beim Start keine Konfigurationsdatei angegeben wird, verwendet MySQL die Konfigurationsdatei /etc/my.cnf. Öffnen Sie diese Datei und prüfen Sie, ob das Datenverzeichnis im Abschnitt [mysqld] angegeben ist.

Fügen Sie Einstellungen unter [mysqld] hinzu, beispielsweise datadir = /data/mysql/data

(5) Problem mit übersprungenen föderierten Feldern

Überprüfen Sie die Datei my.cnf, um zu sehen, ob es ein übersprungenes föderiertes Feld gibt, das nicht auskommentiert ist. Wenn dies der Fall ist, kommentieren Sie es sofort aus.

(6) Das Fehlerprotokollverzeichnis existiert nicht

Überprüfen Sie, ob in der Datei my.cnf ein Protokollkonfigurationspfad vorhanden ist. Wenn ja, überprüfen Sie, ob das Protokollverzeichnis vorhanden ist. Stellen Sie sicher, dass die Berechtigungen für das Protokollverzeichnis den Berechtigungen des MySQL-Startbenutzers entsprechen.

(7) Schuld ist SELinux. Handelt es sich um ein CentOS-System, ist SELinux standardmäßig aktiviert.

Schließen Sie es, öffnen Sie /etc/selinux/config, ändern Sie SELINUX=enforcing in SELINUX=disabled, speichern und beenden Sie und starten Sie die Maschine neu, um es erneut zu versuchen.

(8) Versuchen Sie, MySQL-Daten neu zu initialisieren

Wechseln Sie in das MySQL-Installationsverzeichnis

./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql/data --user=mysql

-----------------------------------------

Melden Sie sich mit den MySQL-Server-Autorisierungsinformationen bei MySQL an. Der Fehler lautet wie folgt:

FEHLER 2003 (HY000): Verbindung zum MySQL-Server auf '192.168.1.14' nicht möglich (111)

Mögliche Ursachen sind:

1) Möglicherweise liegt ein Problem mit der Netzwerkverbindung vor. Wenn Sie 192.168.1.14 remote anpingen, kann der Ping erfolgreich ausgeführt werden, wodurch dieses Problem behoben wird.

2) In den Iptables des MySQL-Servers 192.168.1.14 ist eine Whitelist-Einschränkung für Port 3306 festgelegt.

3) Die Adressbindung bind_address ist in der Datei my.cnf des MySQL-Servers 192.168.1.14 konfiguriert und eine lokale Verbindung ist nicht zulässig.

4) skip_networking ist in der Datei my.cnf des MySQL-Servers 192.168.1.14 konfiguriert, sodass MySQL nur über den lokalen Socket verbunden werden kann (Socket-Verbindung ist auch

Der Standardmodus für lokale Verbindungen), geben Sie die TCP/IP-Überwachung auf;

5) Beheben Sie Probleme mit der DNS-Auflösung und prüfen Sie, ob „skip_name_resolve“ in der Datei my.cnf des MySQL-Servers 192.168.1.14 festgelegt ist. Nach dem Hinzufügen dieses Parameters wird

Eine Verbindungsmethode, die Hostnamen unterstützt.

6) Überprüfen Sie das --port-Problem. Es ist möglich, dass der MySQL-Port des MySQL-Servers 192.168.1.14 nicht der Standardport 3306 ist, sondern beispielsweise Port 3307. Fügen Sie in diesem Fall bei der Remote-Verbindung --port=3307 hinzu.

7) Überprüfen Sie die Benutzer- und Kennwortprobleme. Wenn Benutzername und Kennwort falsch sind, wird der Fehlercode 111 tatsächlich nicht angezeigt. Die Benutzer- und Kennwortprobleme sollten also behoben sein.

FEHLER 1045 (28000): Zugriff für Benutzer „root“@„XXXX“ verweigert (mit Passwort: JA)

Die obige kurze Diskussion zum Problem des vergessenen MySQL-Passworts und des Anmeldefehlers ist der gesamte Inhalt, den der Herausgeber mit Ihnen teilt. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • So lösen Sie das Problem des Vergessens des MySQL-Passworts
  • So ändern Sie das MySQL-Passwort und gehen mit vergessenen MySQL-Passwörtern um

<<:  JavaScript verwendet setTimeout, um einen Countdown-Effekt zu erzielen

>>:  Installation, Aktivierung und Konfiguration von ModSecurity unter Apache

Artikel empfehlen

Eine kurze Diskussion über React Native APP-Updates

Inhaltsverzeichnis App-Update-Prozess Grobes Flus...

Detailliertes Installationstutorial für MySQL 5.7 unter CentOS 6 und 7

Für die Entwicklung benötigen Sie immer Daten. Al...

Starten Sie alle gestoppten Docker-Container mit einem Befehl neu

Starten Sie alle gestoppten Docker-Container mit ...

So erstellen Sie eine lnmp-Umgebung im Docker

Erstellen eines Projektverzeichnisses mkdir php E...

Spezifische Verwendung von useRef in React

Ich glaube, dass Leute, die Erfahrung mit React h...

Detaillierte Erklärung der JavaScript-Fehlererfassung

Inhaltsverzeichnis 1. Grundlegende Verwendung und...

MySQL-Lernhinweise: Daten-Engine

Sehen Sie sich die von der aktuellen Datenbank un...

JavaScript implementiert einen langen Bild-Scroll-Effekt

In diesem Artikel wird der spezifische Code für d...

Wettersymbol-Animationseffekt implementiert durch CSS3

Ergebnisse erzielen Implementierungscode html <...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.11

Die Installations- und Konfigurationsmethoden von...

Wichtige Hinweise zu PHP-HTMLhtml-Wissenspunkten (unbedingt lesen)

1. Verwenden Sie Frameset, Frame und Iframe, um m...