mysql57超管root忘记密码怎么办
目录
背景
1.首先停止数据库
2.使用免密模式启动
3.修改密码
3.1刷新权限配置
3.2修改密码
4.杀掉mysql
5.重新正常启动mysql
6.查看mysql状态
7.验证
7.1首先服务器本地验证
7.2远程验证
背景
数据库密码忘记了,急的抓耳挠腮,怎么也想不起来,于是就开始重置吧
1.首先停止数据库
sudo systemctl stop mysqld
2.使用免密模式启动
sudo mysqld --skip-grant-tables --user=mysql &
3.修改密码
3.1刷新权限配置
首先需要刷新权限,否则无法修改密码
flush privileges;
3.2修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
flush privileges;
exit;
如果需要远程登录,执行下面的命令后再退出(完整版示例)
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
flush privileges;
exit;
4.杀掉mysql
sudo pkill mysqld
5.重新正常启动mysql
sudo systemctl start mysqld
6.查看mysql状态
sudo systemctl status mysqld
如果返回状态为 active (running) 则正常
正常状态示例
[root@VM-0-4-tencentos opt]# sudo systemctl status mysqld
● mysqld.service - MySQL ServerLoaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)Active: active (running) since Wed 2025-09-10 10:17:40 CST; 13min agoDocs: man:mysqld(8)http://dev.mysql.com/doc/refman/en/using-systemd.htmlProcess: 3836004 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, sta>Process: 3835887 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)Main PID: 3836007 (mysqld)Tasks: 38 (limit: 48996)Memory: 225.0MCGroup: /system.slice/mysqld.service└─3836007 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid9月 10 10:17:38 VM-0-4-tencentos systemd[1]: Starting MySQL Server...
9月 10 10:17:40 VM-0-4-tencentos systemd[1]: Started MySQL Server.
lines 1-15/15 (END)
7.验证
7.1首先服务器本地验证
mysql -uroot -p
输入你的新密码
正常登录即表明修改成功
7.2远程验证
使用navicat或者DBeaver等工具验证是否可以远程连接