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. Dies bedeutet, dass MySQL nur über den lokalen Socket verbunden werden kann (Socket-Verbindung ist auch der Standardmodus der lokalen Verbindung) und die TCP/IP-Überwachung aufgegeben wird.

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. Nachdem dieser Parameter hinzugefügt wurde, wird die Verbindungsmethode mit Hostnamen nicht mehr 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:
  • MySQL-Benutzer initialisieren (anonyme Benutzer löschen)
  • So löschen Sie anonyme Benutzer in MySQL (zur Verbesserung der Sicherheit)
  • Lösung für den MySQL-Server-Anmeldefehler ERROR 1820 (HY000)
  • Beheben Sie das Problem der Kennwortänderung bei der ersten Anmeldung nach der Installation von MySQL 8.0
  • Lösung für das Problem, dass sich der mysql8.0.11-Client nicht anmelden kann
  • So melden Sie sich unter Shell schnell ohne Kennwort bei der MySQL-Datenbank an
  • MySql-Anmeldekennwort vergessen und Lösung für vergessenes Kennwort
  • PHP+MySQL-Methode zur Realisierung der Benutzerregistrierung und -anmeldung
  • Lösung zum Hinzufügen eines neuen Benutzers zu MySQL und zum Nicht-Anmelden
  • Bei der anonymen Mysql-Anmeldung kann keine Datenbankproblemlösung erstellt werden

<<:  So verwalten Sie Benutzer und Gruppen beim Ausführen von Docker

>>:  Detaillierte Erläuterung der Docker Volume-Berechtigungsverwaltung

Artikel empfehlen

Allgemeine Befehle zum Bereitstellen von InfluxDB und Mongo mit Docker

Bereitstellen einer Datenbank basierend auf Docke...

Wie setze ich eine Unterstreichung in HTML? So unterstreiche ich Text in HTML

Früher bestand das Unterstreichen in HTML darin, ...

Mehrere CSS3-Tag-Abkürzungen (empfohlen)

border-radius: CSS3 abgerundete Ecken Syntax: bor...

30 kostenlose hochwertige englische Ribbon-Schriftarten

30 kostenlose englische Ribbon-Schriftarten in hoh...

MySQL 5.6.24 (binär) automatisches Installationsskript unter Linux

In diesem Artikel wird der Skriptcode für die aut...

Hinweise zur Konfiguration mehrerer Proxys mithilfe von Vue-Projekten

Im Entwicklungsprozess eines Vue-Projekts konfigu...

Detaillierte Darstellung des MySQL 5.7.33-Installationsprozesses

Inhaltsverzeichnis Download des Installationspake...

HTML als Startseite festlegen und zu Favoriten hinzufügen_Powernode Java Academy

So implementieren Sie die Funktionen „Als Startse...