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

Native JS-Canvas zum Erzielen einer einfachen Schlange

In diesem Artikel wird der spezifische Code von J...

Tutorial zur Installation von MySQL 8.0.11 mit RPM unter Linux (CentOS7)

Inhaltsverzeichnis 1. Installationsvorbereitung 1...

Zusammenfassung gängiger Befehle zur Linux-Benutzer- und Gruppenverwaltung

Dieser Artikel fasst die allgemeinen Befehle zur ...

Detaillierte Beispiele für die Ausführung von Zabbix-Remotebefehlen

Inhaltsverzeichnis eins. Umfeld zwei. Vorsichtsma...

Zusammenfassung zum Hinzufügen von Root-Berechtigungen für Benutzer in Linux

1. Fügen Sie einen Benutzer hinzu . Verwenden Sie...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.13

Installation der Msyql-Datenbank. Zu Ihrer Inform...

Detaillierte Einführungshinweise zu Vue

Inhaltsverzeichnis 1. Einleitung 2. Erster Eindru...

Asynchrone JS ES6-Lösung

Inhaltsverzeichnis Erste Verwendung der Callback-...

So überwachen Sie Oracle-Datenbanken mit Zabbix Agent2

Überblick In Zabbix Version 5.0 und höher wurde e...

MySQL 8.0.18 fügt Benutzer zur Datenbank hinzu und erteilt Berechtigungen

1. Es wird empfohlen, den Root-Benutzer für die A...

Ich zeige Ihnen, wie Sie Schriftsymbole in CSS verwenden

Zunächst einmal: Was ist ein Schriftsymbol? Oberf...

HTML+CSS+JavaScript zum Erstellen eines einfachen Tic-Tac-Toe-Spiels

Inhaltsverzeichnis Implementieren von HTML CSS hi...