美烦资源网

专注技术文章分享,涵盖编程教程、IT 资源与前沿资讯

mysql 重置root密码

重置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 # 输入新密码测试登录
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言