数据库MySQL8.0忘记密码怎么办?
MySQL8.0重置密码的过程和以前版本有所不同,具体过程我们下面详细解说。
以centos系统的MySQL8.0为例说明,如果windows系统找到MySQL配置文件my.ini进行修改,也是可以的。
1、找到mysql的配置文件:/etc/my.cnf,打开并增加一行,用于跳过登录验证:
skip-grant-tables
如下图位置:
2、重启MYSQL,可以用如下命令:
systemctl restart mysqld.service
一定要确保启动完成。也可以分开停止和启动:
systemctl stop mysqld.service
systemctl start mysqld.service
3、登录MySQL
mysql -u root
即可登录进来。
4、MySQL8.0以前版本,我们都是这样直接改密码:
mysql> ALTER USER "root"@"localhost" IDENTIFIED BY "newpassword";
但是8.0版本里是不允许的,会出错误提示:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
正确的做法是:
进入mysql系统库,并设置验证为空。
mysql> use mysql
Database changed
mysql> update user set authentication_string='' where user='root';
然后退出MYSQL。
5、去掉前面在my.cnf文件里加的那一句 skip-grant-tables,再并重启MySQL。
6、再次登录到系统,这时是没有验证的:
mysql -h localhost -u root
7、登录后,这里再使用修改密码命令就可以了:
mysql> ALTER USER "root"@"localhost" IDENTIFIED BY "newpassword";
本文系作者在时代Java发表,未经许可,不得转载。
如有侵权,请联系nowjava@qq.com删除。