Heim > Datenbank > MySQL-Tutorial > Hauptteil

Detaillierte Einführung in den Beispielcode zum Ändern des Root-Passworts von MySQL unter Linux

黄舟
Freigeben: 2017-03-16 13:23:44
Original
1178 Leute haben es durchsucht

MySQL ist eine Datenbank, die wir häufig unter Linux oder Windows verwenden müssen. Ich glaube, dass jeder Programmierer mit MySQL vertraut sein sollte, aber manchmal ist das Gehirn kurzgeschlossen. Ich habe plötzlich das Passwort des MySQL-Superusers vergessen. Zu diesem Zeitpunkt muss ich ein neues Passwort ändern. Der folgende Artikel stellt vor, wie man das Root-Passwort von MySQL unter Linux ändert.

Vorwort

Es sollte mehrere Monate her sein, seit der Dienst auf MySQL bereitgestellt wurde, da die meiste Arbeit jetzt im Terminal stattfindet. Es gibt also sehr wenig Anmelden, ich möchte heute etwas ändern, und plötzlich stellte ich fest, dass ich das MySQL-Passwort völlig vergessen hatte. Ich durchsuchte den Code und fand schließlich das Passwort für die Geschäftsdatenbank, aber das Root-Passwort war immer noch nicht da gefunden, und die Berechtigungen konnten nicht geändert werden, also begann ich, durch die Gruben zu kriechen. Ich schätze, dass ich sie in Zukunft noch einmal antreffen werde, also werde ich sie kompilieren und aufzeichnen. Freunde, die es brauchen, können vorbeikommen und einen Blick darauf werfen.

Systemparameter

Server

 $ cat /proc/version
 Linux version 4.8.3-x86_64-linode76 (maker@build) (gcc version 4.7.2 (Debian 4.7.2-5) ) #1 SMP Thu Oct 20 19:05:39 EDT 2016
 $ lsb_release -a
 No LSB modules are available.
 Distributor ID: Ubuntu
 Description: Ubuntu 16.04.1 LTS
 Release: 16.04
 Codename: xenial
Nach dem Login kopieren

MySQL

 mysql> show variables like "%version%";
 +-------------------------+-------------------------+
 | Variable_name  | Value   |
 +-------------------------+-------------------------+
 | innodb_version  | 5.7.16   |
 | protocol_version | 10   |
 | slave_type_conversions |    |
 | tls_version  | TLSv1,TLSv1.1  |
 | version   | 5.7.16-0ubuntu0.16.04.1 |
 | version_comment  | (Ubuntu)  |
 | version_compile_machine | x86_64   |
 | version_compile_os | Linux   |
 +-------------------------+-------------------------+
Nach dem Login kopieren

Lösung

Starten Sie MySQL im abgesicherten Modus, Sie können sich direkt als Root anmelden und dann zurücksetzen Passwort. Im Folgenden sind die spezifischen Schritte aufgeführt:

Stoppen Sie den laufenden MySQL-Dienst:

 sudo service mysql stop
Nach dem Login kopieren

Starten Sie MySQL im abgesicherten Modus:

 sudo mysqld_safe --skip-grant-tables --skip-networking &
Nach dem Login kopieren

Melden Sie sich direkt mit Root an, ohne Passwort erforderlich:

 mysql -u root
Nach dem Login kopieren

Passwort zurücksetzen:

 mysql> use mysql;
 mysql> update user set authentication_string=password('password') where user='root';
 mysql> flush privileges;
Nach dem Login kopieren

Beenden MySQL

 mysql > quit
Nach dem Login kopieren

MySQL neu starten

 sudo service mysql restart
Nach dem Login kopieren

Passwort-Anmeldung:

 mysql -u root -p
Nach dem Login kopieren
Nach dem Login kopieren

Ausnahmebehandlung

Beim Ändern des Passworts wird ein Fehler gemeldet , was zu FEHLER 1054 (42S22) führt

Beim Ändern des Passworts werden Sie in vielen Dokumenten im Internet aufgefordert, den Befehl zum Ändern einzugeben:

 mysql> update user set password=PASSWORD("password") where User='root';
Nach dem Login kopieren

Das Ergebnis ist ein Fehler, wenn Verwenden Sie diesen Befehl:

 ERROR 1054 (42S22): Unknown column 'password' in 'field list'
Nach dem Login kopieren

Der Grund dafür ist, dass das Kennwortfeld ab MySQL 5.7 durch den folgenden Befehl ersetzt wurde:

 update user set authentication_string=password('password') where user='root';
Nach dem Login kopieren

Nach dem Ändern des Passworts schlägt die Anmeldung bei MySQL fehl und es wird FEHLER 2 angezeigt002 (HY000)

Nach dem Ändern des Passworts und dem Neustart kann ich mich nicht bei MySQL anmelden. Nach der Suche nach

wird die Meldung
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Nach dem Login kopieren

angezeigt. Die Rückmeldung liegt daran, dass ich mehrere Versionen von MySQL installiert habe und das Problem durch die aufeinanderfolgende Ausführung der folgenden Befehle gelöst werden kann .

Laufendes MySQL anzeigen

 ps -A|grep mysql
Nach dem Login kopieren

Laufendes MySQL töten

 sudo pkill mysql
Nach dem Login kopieren

Laufendes MySQL anzeigen

 ps -A|grep mysqld
Nach dem Login kopieren

Laufendes MySQL töten

 sudo pkill mysqld
Nach dem Login kopieren

Mysql neu starten

 service mysql restart
Nach dem Login kopieren

Bei MySQL anmelden

 mysql -u root -p
Nach dem Login kopieren
Nach dem Login kopieren

Zusammenfassung

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den Beispielcode zum Ändern des Root-Passworts von MySQL unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage