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

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

黄舟
黄舟Original
2017-03-16 13:23:441141Durchsuche

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

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   |
 +-------------------------+-------------------------+

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

Starten Sie MySQL im abgesicherten Modus:

 sudo mysqld_safe --skip-grant-tables --skip-networking &

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

 mysql -u root

Passwort zurücksetzen:

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

Beenden MySQL

 mysql > quit

MySQL neu starten

 sudo service mysql restart

Passwort-Anmeldung:

 mysql -u root -p

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';

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

 ERROR 1054 (42S22): Unknown column 'password' in 'field list'

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 Ä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)

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

Laufendes MySQL töten

 sudo pkill mysql

Laufendes MySQL anzeigen

 ps -A|grep mysqld

Laufendes MySQL töten

 sudo pkill mysqld

Mysql neu starten

 service mysql restart

Bei MySQL anmelden

 mysql -u root -p

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!

Stellungnahme:
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