Copyright 2025 HNCloud Limited.
香港联合通讯国际有限公司
Linux重置mysql root密码的常用方法
时间 : 2025-02-20 10:46:46
编辑 : 华纳云
阅读量 : 180
在Linux系统中重置MySQL的root密码可以通过以下步骤完成。请根据你的MySQL版本(如5.7或8.0)选择对应的操作:
需要先停止MySQL服务
sudo systemctl stop mysql # 或 mysqld、mariadb(根据实际服务名调整)
以跳过权限检查的方式启动MySQL
方法一(推荐):使用--skip-grant-tables选项启动
sudo mysqld_safe --skip-grant-tables --skip-networking&--skip-networking
防止远程连接,增强安全性。
方法二:修改配置文件(适合需要持久化配置的情况)
编辑MySQL配置文件:
sudo nano /etc/my.cnf # 或 /etc/mysql/my.cnf、/etc/mysql/mysql.conf.d/mysqld.cnf
在 [mysqld] 部分添加:
ini
skip-grant-tables
skip-networking
保存后重启服务:
sudo systemctl restart mysql
连接到MySQL服务器
无需密码即可登录:
mysql -u root
重置root密码
MySQL 5.7及以下版本
刷新权限
FLUSH PRIVILEGES;
更新密码(替换 'new_password')
UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root';
退出EXIT;
MySQL 8.0及以上版本
sql
刷新权限
FLUSH PRIVILEGES;
重置密码(替换 'new_password')
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
退出EXIT;
恢复MySQL正常模式
关闭跳过权限的实例:
sudo systemctl stop mysql
移除配置修改(如果用了方法二):
删除 my.cnf 中添加的 skip-grant-tables 和 skip-networking。
重启服务:
sudo systemctl start mysql
验证新密码
mysql -u root -p
输入新密码确认登录成功。
常见问题解决
出现权限错误,确保数据目录(如 /var/lib/mysql)的所有权属于 mysql 用户:
sudo chown -R mysql:mysql /var/lib/mysql
无法ALTER USER(MySQL 8.0):如果在跳过权限模式下无法执行ALTER USER,尝试:
sql
FLUSH PRIVILEGES;ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
通过以上步骤,你应能成功重置MySQL的root密码。如果问题仍然存在,请检查日志文件(/var/log/mysql/error.log)以获取详细错误信息。