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
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 MeldungERROR 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!