第一步:
在mysql的配置文件中/etc/my.cnf 中 [mysqld] 下加入skip-grant-tables这条命令
vim /etc/my.cnf
[mysqld]
skip-grant-tables
第二步:
重启mysqld服务
service mysqld restart
第三步:
直接进入mysql
mysql -uroot
use mysql
update user set authentication_string='' where user='root';
exit
update user set authentication_string=’’ where user=‘root’;
使用此条命令清除密码为空
第四步:
进入/etc/my.cnf 将skip-grant-tables 注释 重启服务
因为此时将skip-grant-tables注释掉的话修改密码会报错:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
所以我们需要执行:
vim /etc/my.cnf
[mysqld]
#skip-gant-tables
service mysqld restart
第五步:
直接执行进入mysql 执行命令
mysql -uroot
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
必须使用这个命令
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的密码’;
mysql 8.0中无法使用
1.update mysql.user set authentication_string=password(“123”) where user=‘root’;
2.mysql -uroot -p123.com -e “use mysql;update user set authentication_string=password(‘456’) where user=‘root’;”