【MySQL运维】MySQL root密码忘记的解决办法

TangLu MySQL 2020-02-08 2991 0

MySQL管理密码忘记后可以通过以下方式重置:

1、在/etc/my.cnf配置中增加以下内容

[mysqld]
skip-grant-tables  #跳过密码验证
skip-networking    #禁止监听网络,避免暴露在公网上的数据库立即被入侵


2、重启MySQL服务后登录MySQL就可以不输入密码了,然后执行以下SQL清空当前密码

mysql > update mysql.user set authentication_string='' where user='root' and host='localhost';
mysql > flush privileges;


3、取消配置文件中的skip内容,然后再次重启MySQL服务即可


PS:在5.7之前的版本中,修改密码的SQL语法有一点不同

mysql > update mysql.user set password=password('NEWPASSWORD') where user='root';
mysql > flush privileges;


另外除了修改配置文件外,在启动MySQL服务时使用--skip-grant-tables选项也可以开启忽略授权认证的功能

mysqld_safe --skip-grant-tables --user=mysql & #多实例时要在skip前增加--defaults-file=/etc/xx.cnf指定配置文件
mysqladmin -u root -ppassword shutdown #关闭用mysqld_safe启动的服务


评论