Mysql忘记密码-密码重置

0 阅读2分钟

1.通过管理员方式打开cmd **,cmd程序路径一般在C:\Windows\System32,找到cmd.exe右键以管理员方式运行

2.停止mysql **服务,net stop mysql

image.png

3.以“安全模式”启动服务端 需要直接运行 mysqld 并带上跳过权限的参数。运行以下命令:

<CMD>
mysqld --console --skip-grant-tables --shared-memory
  • --console: 让运行日志显示在当前窗口中,方便查看是否启动成功。
  • --shared-memory: 在 Windows 上通常需要加上这个参数,否则客户端可能无法连接。

保持这个 CMD 窗口打开,不要关闭它。窗口看起来像“卡住”了是正常的,这说明服务正在运行。

4.免密登录 打开一个新的、管理员命令提示符窗口。运行客户端:mysql

image.png

5.重置密码并退出

  • 刷新权限表(这步很重要,否则无法修改密码):

    <SQL>
    FLUSH PRIVILEGES;
    
  • 修改密码(将 123456 替换为你想要的新密码):

    <SQL>
    ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
    

    (如果你使用的是 MySQL 5.7 或更老版本,请使用:UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE User='root';

  • 再次执行:FLUSH PRIVILEGES;

  • 退出:exit
    image.png

6.重启服务

  • 进入mysql安装目录

  • 安全关闭服务:mysqladmin -u root -p shutdown

  1. mysqladmin: 这是 MySQL 自带的一个管理工具,用于执行管理操作(如创建数据库、检查状态、刷新权限、关闭服务等)。
  2. -u root: 指定使用 root 用户身份来执行这个操作(因为只有管理员才有权限关闭服务器)。
  3. -p: 告诉程序“我会输入密码”。按下回车后,它会提示你输入 root 用户的密码。
  4. shutdown: 这是发送给服务器的具体指令,告诉 MySQL Server 停止运行。

它和直接在任务管理器里“结束进程”或者按 Ctrl+C 强制退出的区别在于:数据的安全性

当你执行 mysqladmin shutdown 时,MySQL 服务器会:

  1. 停止接受新的连接。
  2. 把内存中尚未保存的数据(脏页)全部写入硬盘
  3. 关闭所有打开的数据表文件。
  4. 安全退出。

总结:这是一种“软着陆”。它可以防止数据丢失或数据库文件损坏。如果你之前手动运行了 mysqld --console,用这个命令来关闭它是最安全的做法。

  • 重启mysql服务:net start mysql image.png