mysql 重置root密码

mysql 重置root密码

编码文章call10242025-06-10 12:12:594A+A-

重置MySQL root密码的通用步骤(适用于MySQL 5.7及8.0版本):


方法一:通过跳过权限验证重置密码36

  1. 停止MySQL服务
# Windows
net stop MySQL80
# Linux(systemd系统)
sudo systemctl stop mysqld
  1. 以无权限模式启动MySQL
    保持当前终端窗口运行(不要关闭):
# 需指定my.ini/my.cnf路径(Windows参考路径示例)
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --skip-grant-tables --shared-memory
  1. 重置密码
    新开一个终端窗口执行:
mysql -u root
  1. 在MySQL交互界面输入:
FLUSH PRIVILEGES;  -- 刷新权限(必须执行)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPass';  -- MySQL 5.7+
-- 或(MySQL 8.0可能需要指定插件)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourNewPass';
FLUSH PRIVILEGES;  -- 再次刷新
EXIT;
  1. 重启MySQL服务
    回到第2步的窗口按Ctrl+C终止无权限模式,然后重启服务:
# Windows
net start MySQL80
# Linux
sudo systemctl start mysqld

方法二:通过初始化文件重置密码4

  1. 创建初始化文件
    新建文本文件mysql-init.txt,写入:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
  1. 启动MySQL时加载文件
mysqld --init-file=/path/to/mysql-init.txt --console
  1. 启动后密码即被修改,完成后删除初始化文件。

其他方法补充12

  • 使用mysqladmin(需要旧密码):
mysqladmin -u root -p旧密码 password 新密码
  • 直接修改user表(需谨慎):
UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE user='root';
FLUSH PRIVILEGES;

注意事项7

  • 密码复杂度要求:MySQL 8.0默认要求强密码(包含大小写字母、数字、特殊字符)。
  • 权限验证插件:若遇到身份验证错误,可指定mysql_native_password插件38。
  • 跳过权限模式后必须重启服务,否则存在安全风险。

验证密码是否生效:

mysql -u root -p # 输入新密码测试登录
点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4