MySQL 5.7.18忘記密碼和密碼過期解決
阿新 • • 發佈:2018-01-10
重啟 my.cnf sch mat input gis cli res names 一、忘記密碼解決
[root@linux-node2 ~]# /etc/init.d/mysqld stop [root@linux-node2 ~]# mysqld_safe --skip-grant-tables & [root@linux-node2 ~]# mysql -p mysql> update mysql.user set authentication_string=password(‘123456‘) where user=‘root‘ and Host = ‘localhost‘; #特別提醒註意的一點是,新版的mysql數據庫下的user表中已經沒有Password字段了 #而是將加密後的用戶密碼存儲於authentication_string字段 mysql> flush privileges; mysql> quit; [root@linux-node2 ~]# /etc/init.d/mysqld restart #然後mysql就可以連接了,但此時操作似乎功能不完全,還要alter user… mysql> show databases; ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. mysql> alter user ‘root‘@‘localhost‘ identified by ‘123456‘; Query OK, 0 rows affected (0.01 sec) mysql> quit; Bye [root@linux-node3 mysql]# /etc/init.d/mysqld restart Shutting down MySQL.. SUCCESS! Starting MySQL. SUCCESS! [root@linux-node3 mysql]# mysql -uroot -p123456 mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.18-log MySQL Community Server (GPL) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+
二、密碼過期問題解決
1、問題現象
[root@linux-node2 mysql]# mysql -uroot -p
Enter password:
ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.
2、修改配置文件/etc/my.cnf
[root@linux-node2 mysql]# vim /etc/my.cnf #在[mysqld]下增加skip-grant-tables,跳過授權表登錄 [client] port = 3306 socket = /data/mysql/mysql.sock [mysql] no-auto-rehash [mysqld] user = mysql port = 3306 socket = /data/mysql/mysql.sock datadir = /data/mysql/data log-bin = /data/mysql/mysql-bin server-id = 6 skip-grant-tables [root@linux-node2 mysql]# /etc/init.d/mysqld restart Shutting down MySQL.. SUCCESS! Starting MySQL. SUCCESS!
3、登錄mysql
[root@linux-node2 mysql]# mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.7.18-log MySQL Community Server (GPL) Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement. MySQL [(none)]> use mysql; Database changed MySQL [mysql]> update user set password_expired=‘N‘ where user=‘root‘; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0 MySQL [mysql]> flush privileges; Query OK, 0 rows affected (0.01 sec) MySQL [mysql]> quit; Bye
4、去掉跳過授權表登錄,並重啟登錄
[root@linux-node2 mysql]# vim /etc/my.cnf
[root@linux-node2 mysql]# /etc/init.d/mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
[root@linux-node2 mysql]# mysql -uroot -p123456
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.18-log MySQL Community Server (GPL)
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
MySQL [(none)]> quit;
Bye
MySQL 5.7.18忘記密碼和密碼過期解決