解决MySQL忘记密码

发表于:2017-11-02

前几天的问题,安装完MySQL连接的时候提示

xiejiahe$ mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

是因为密码错误,我当时没填密码,因为MySQL默认密码是空的,然后我就查了下现在的版本为了出于安全考虑安装的时候随机给了密码, 我安装的时候没见着有这玩意还是我错过了?

MySQL版本

mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 5.7.20    |
+-----------+

如果已经启动了mysql先杀掉mysqld进程,

service mysqld stop
// 或者
kill -TERM mysqld

免密码启动MySQL

意思是启动mysql, 跳过grant-tables授权表,这样的话就不需要密码去登录,这个时候终端会卡住

sudo mysqld_safe --skip-grant-tables

打开另外一个终端直接敲mysql

这个时候已经进入mysql了

xiejiahe$ mysql

修改root密码

密码最好修改复杂点,不要搞什么123456

UPDATE user SET authentication_string=PASSWORD('你的密码') WHERE user = 'root';

这个时候已经成功了,把刚刚免密码进入mysql的终端关闭掉然后重启一下mysql就OK了。


如果进入MySQL提示了另外一个错误

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

修改下密码就OK了

alter user 'root'@'localhost' identified by '你的密码'; 
SQL