普通用户忘记密码
如果是普通用户忘记密码可以用 root@locallhos 管理员用户登陆 MySQL 修改密码
# 低版本 mysql SET PASSWORD FOR 'your_user'@'your_host' = PASSWORD('new_secure_password'); FLUSH PRIVILEGES; # 5.7 以上版本 alter user 'your_user'@'your_host' identified by 'your_password'; FLUSH PRIVILEGES;
管理员用户忘记密码
如果是管理员用户忘记密码,则需要跳过授权表重启 MySQL 来修改密码
跳过网络和授权表启动MySQL
vim /etc/my.cnf # 在配置文件结尾 [mysqld] 模块中添加如下两行 skip-grant-tables=1 skip-networking =1
重启 MySQL
/etc/init.d/mysqld restart systemctl restart mysqld # systemd 管理可以这样重启
查看进程
ps -ef|grep mysqld
登录MySQL
mysql -uroot -p # 现在没密码
修改root密码为空
# 5.5/5.6 版本修改方法 update mysql.user set password='' where user='root' and host='localhost'; # 5.7/8.*版本修改方法 update mysql.user set authentication_string='' where user='root' and host='localhost';
删除或注释掉跳过授权表启动
vim /etc/my.cnf #skip-grant-tables=1 #skip-networking =1
重启 MySQL
/etc/init.d/mysqld restart systemctl restart mysqld # systemd 管理可以这样重启
查看端口
netstat -lntp
登录mysql
mysql -uroot -p # 这时候没有密码
修改密码为你想要的密码
alter user root@localhost identified by 'your_password';