Heim  >  Artikel  >  Datenbank  >  Was soll ich tun, wenn ich vergesse, das MySQL-Passwort unter Linux zu ändern?

Was soll ich tun, wenn ich vergesse, das MySQL-Passwort unter Linux zu ändern?

青灯夜游
青灯夜游Original
2020-10-20 10:43:452881Durchsuche

Lösung: 1. Fügen Sie in my.cnf zwei Codezeilen hinzu, um die Passwortüberprüfung beim Anmelden zu überspringen. 2. Starten Sie den MySQL-Dienst und melden Sie sich bei MySQL an . Stellen Sie eine Verbindung zur MySQL-Datenbank her und ändern Sie das Benutzerkennwort mit dem Befehl UPDATE.

(Empfohlenes Tutorial: sMysql-Video-Tutorial
)

Was soll ich tun, wenn ich vergesse, das MySQL-Passwort unter Linux zu ändern?

Lösung, dass MySQL Passwörter unter LLINUX ändert

Passwort ändern 1. Überprüfen Sie MySQL , ob der Code>-Dienst gestartet ist. Wenn er gestartet ist, schließen Sie ihn der <code>mysql-Dienst
//查看mysql服务状态
[root@mytestlnx02 ~]# ps -ef | grep -i mysql
root     22972     1  0 14:18 pts/0    00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql    23166 22972  0 14:18 pts/0    00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
root     23237 21825  0 14:22 pts/0    00:00:00 grep -i mysql

//关闭服务
[root@mytestlnx02 ~]# service mysql stop
[root@mytestlnx02 ~]#

2. Ändern Sie die Konfigurationsdatei my.cnf von mysql Der Speicherort des Die Konfigurationsdatei my.cnf befindet sich normalerweise in /etc/my.cnf, und einige Versionen befinden sich in /etc/mysql/my.cnf

In der Konfigurationsdatei, 2 Zeilen Code hinzufügen

[mysqld]

skip-grant-tables
Die Funktion besteht darin, die Passwortüberprüfung zu überspringen, wenn Sie sich bei mysql anmelden.mysql服务是否启动,如果启动,关闭mysql服务
[root@mytestlnx02 ~]# service mysqld start
[root@mytestlnx02 ~]#
[root@mytestlnx02 ~]# mysql -u root 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql>

2. 修改mysql的配置文件my.cnf

my.cnf配置文件的位置,一般在/etc/my.cnf,有些版本在/etc/mysql/my.cnf

在配置文件中,增加2行代码

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed
mysql> update mysql.user set authentication_string=password('root_password') where user='root';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
mysql> exit

作用是登录mysql的时候跳过密码验证

然后启动mysql服务,并进入mysql

[root@mytestlnx02 ~]# service mysql start
[root@mytestlnx02 ~]#
[root@mytestlnx02 ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.

3. 修改密码

连接mysql这个数据库,修改用户密码

mysql> update user set authentication_string=password('xxxxxxxx') where User='root';       
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('root_password') where User='root'' at line 1

4. 重启mysql服务

先将之前加在配置文件里面的2句代码注释或删除掉,然后重启mysql服务,就可以使用刚刚设置的密码登录了。

[root@VM_0_8_centos ~]# grep 'temporary password' /var/log/mysqld.log
2018-09-26T04:25:54.927944Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: DN34N/=?aIfZ

p.s.

CentOS上的操作方式有所不同。

执行修改密码的命令一直报错

[root@VM_0_8_centos ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.12 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

不可能是语法问题,检查了很多遍,最后发现CentOS下应该这样操作:

查看初始密码

mysql> ALTER USER 'root' IDENTIFIED BY 'xxxxxxxxx';  
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxxxx';
Query OK, 0 rows affected (0.11 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> exit
Bye

可以看到初始密码为DN34N/=?aIfZ

Dann starten Sie den mysql-Dienst und geben Sie mysql ein

[root@VM_0_8_centos ~]# service mysqld stop 
Redirecting to /bin/systemctl stop  mysqld.service
[root@VM_0_8_centos ~]# service mysqld start
Redirecting to /bin/systemctl start  mysqld.service
3. Ändern Sie das Passwort

Verbinden Sie sich mit der mysql-Datenbank und ändern Sie das Benutzerpasswortrrreee

4. Starten Sie den mysql-Dienst neu

Kommentieren oder löschen Sie zunächst die beiden zuvor zur Konfigurationsdatei hinzugefügten Codezeilen, starten Sie dann den mysql-Dienst neu und melden Sie sich dann mit dem gerade festgelegten Passwort an. 🎜rrreee🎜🎜🎜p.s.🎜🎜🎜🎜 funktioniert unter CentOS anders. 🎜🎜Beim Ausführen des Befehls zum Ändern des Passworts wird immer wieder ein Fehler gemeldet🎜rrreee🎜Es kann kein Syntaxproblem sein und ich habe schließlich festgestellt, dass es unter CentOS so gemacht werden sollte: 🎜🎜🎜Anfangspasswort anzeigen🎜🎜rrreee🎜Sie können sehen: Das Anfangspasswort lautet DN34N/=?aIfZ🎜🎜🎜Verwenden Sie das Anfangspasswort, um sich anzumelden🎜🎜rrreee🎜🎜Ändern Sie das Passwort🎜🎜 rrreee🎜🎜Starten Sie den Dienst neu und er wird wirksam🎜🎜rrreee

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn ich vergesse, das MySQL-Passwort unter Linux zu ändern?. 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