Centos7 Mysql8.0版本 重置root密码

问题产生背景:

安装完 最新版的 mysql8.0后忘记了密码,向重置root密码;找了网上好多资料都不尽相同,根据自己的问题总结如下:

1 修改配置文件免密码登录mysql

需要登录你安装mysql的电脑或者服务器,修改etc文件夹下的my.cnf 配置文件让其跳过登录密码检查。

vim /etc/my.cnf //永久修改
echo skip-grant-tables >> /etc/my.conf //临时修改

2 在 [mysqld]最后加上如下语句 并保持退出文件;

skip-grant-tables

3 重启mysql服务:

systemctl restart mysqld.service

第二步免密码登录到mysql上;直接在命令行上输入:

mysql  
//或者  
mysql -u root -p   
//password直接回车

第三步: 给root用户重置密码;

ALTER user 'root'@'localhost' IDENTIFIED BY 'Zhige123#';

然后我们继续编辑/etc/my.conf删除掉刚刚添加的那一行skip-grant-tables,然后重启mysql。

至此修改成功; 从新使用用户名密码登录即可;

systemctl restart mysqld.service 
systemctl status mysqld.service 
mysql -u root

结尾提示:

select host, user, authentication_string, plugin from user;
host: 允许用户登录的ip‘位置’%表示可以远程;

user:当前数据库的用户名;

authentication_string: 用户密码;在mysql 5.7.9以后废弃了password字段和password()函数;

plugin: 密码加密方式;

退出mysql, 删除/etc/my.cnf文件最后的 skip-grant-tables 重庆mysql服务;