在开发AI模拟面试系统的后端时,因为忘记了本地 Linux 环境下的 MySQL root 密码,导致 Spring Boot 无法连接数据库。为了解决这个问题,我通过跳过权限表的方式重置了密码。以下是具体的操作步骤记录。
环境说明:Ubuntu 系统,适用于 MySQL 5.7 和 8.0 版本。
1. 停止 MySQL 服务
在修改配置前,需要先停止正在运行的 MySQL 服务。
Ubuntu / Debian 系统:
Bash
sudo systemctl stop mysql
CentOS / RHEL 系统:
Bash
sudo systemctl stop mysqld
2. 跳过权限表启动
设置系统环境变量,让 MySQL 启动时不加载权限表,并禁用网络连接。
Bash
sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking"
sudo systemctl start mysql
3. 无密码登录数据库
此时可以直接以 root 身份本地登录,不需要输入密码。
Bash
mysql -u root
4. 刷新权限并修改密码
进入 MySQL 控制台后,必须先刷新权限,然后才能执行修改密码的命令。
SQL
-- 1. 刷新权限
FLUSH PRIVILEGES;
-- 2. 修改密码(将'你的新密码'替换为实际要设置的密码)
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
说明:如果是 MySQL 5.6 或更低版本,修改密码的命令为 UPDATE mysql.user SET password=PASSWORD('你的新密码') WHERE User='root';
修改完成后,输入 exit; 退出控制台。
5. 恢复配置并重启服务
清除刚才设置的临时环境变量,并以正常模式重启 MySQL 服务。
Bash
sudo systemctl unset-environment MYSQLD_OPTS
sudo systemctl restart mysql
重启完成后,即可使用新设置的密码正常连接数据库。