mysql5.7.6版本后,废弃user表中password()方法,
所以旧方法重置密码对mysql8.0版本是行不通的!
mysql8可以采用此方法修改root密码:
skip-grant-tables模式启动
skip-grant-tables表示,在启动mysql时不启动授权表功能,可以直接免密码登录
#修改/etc/my.cnf文件
vim /etc/my.cnf
#在[mysqld]区域添加配置,并保存my.cnf文件
skip-grant-tables
#重启mysql
systemctl restart mysqld
#登录mysql
mysql -u root -p
#如果出现输入密码,直接回车,就可以进入数据库了
#在skip-grant-tables模式下,将root密码置空
update user set authentication_string = '' where user = 'root';
#退出,将/etc/my.cnf文件下的skip-grant-tables去掉,重启服务器
#登录mysql
mysql -u root -p
#因为密码置空,直接回车,进入数据库之后,修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'bobo@123password';
#因为mysql8,使用强校验,所以,如果密码过于简单,会报错,密码尽量搞复杂些!