问题背景:忘记mysql root密码,或者手贱改错
解决方法:
1、停掉mysql服务
# systemctl stop mysqld
2、修改配置文件
# vim /etc/my.cnf
添加 skip-grant-tables
3、启动mysql 服务
# systemctl start mysqld
4、免密登录 mysql -p
mysql8 改密码用 alter user 语句。
无密码登录的mysql 无法用alter user语句,先将root密码字段update为空字符,
update mysql.user set authentication_string='' where user='root';
使改动生效 flush privileges;
5、关闭mysql服务;配置文件注释掉skip-grant-tables;启动mysql服务
6、使用空字符密码登录之后执行 alter user 语句修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'newpasswd';
使改动生效 flush privileges;