如何在Windows上重置root MySQL密码?

时间:2016-12-07 19:46:43

标签: mysql

我正在尝试备份Windows服务器上托管的旧MySQL数据库,但需要重置root密码,因为该公司没有人记得它。我试过跟these instructions,但到目前为止没有运气。我找到服务(MySQL56)停止它,并以管理员身份打开命令提示符。正在使用MySQL 5.6。

然后我使用cd导航到C:\Program Files\MySQL\MySQL Server 5.6\bin,并运行以下命令:

mysqld --defaults-file="C:\\Program Data\\MySQL\\MySQL Server 5.6\\my.ini" --init-file="C:\\mysql-init.txt

--defaults-file选项直接从服务的属性中复制,因此我知道它正在寻找正确的位置。我还验证了该位置有一个my.ini文件。

mysql-init.txt文件的内容只是包含此命令的一行:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('TheNewPassword');

当我运行它时,我收到一条警告:不推荐使用具有隐式DEFAULT值的TIMESTAMP。请使用--explicit_defaults_for_timestamp服务器选项(有关更多详细信息,请参阅文档)。

然后

mysqld似乎在停止前运行了几秒钟(我通过打开任务管理器确认了这一点。我看到mysqld.exe弹出然后消失,命令提示符在窗口中返回。

在启动服务备份后,尝试使用此新密码登录无效。我很茫然,并尝试了几种不同的方法来重置密码,但没有一种方法有效。有什么我想念的吗?

编辑:我注意到如果我不包含--init-file选项,它会启动并继续运行而不会停止...但是,因为它没有运行命令,所以密码不是在这种情况下重置。

1 个答案:

答案 0 :(得分:0)

请按照以下步骤在Windows上重置您的MySQL密码:

碰巧您忘记了MySQL root用户密码。您在网上找到的答案根本行不通。与往常一样,Moder软件趋势网站上提供了一个完整而简单的解决方案。只需按照这些步骤操作,您就会很方便。

  1. 停止MySQl服务@ services.msc

  2. 使用以下内容创建文件change_mysql_pwd.txt(用您要为root用户拥有的所需新密码替换YourNewPassword:

      ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';
    
  3. 将文件保存到C:\ change_mysql_pwd.txt

  4. 以管理员身份运行CMD.exe(开始-> Cmd->右键单击->以管理员身份运行)

  5. 在cmd中键入:cd“ C:\ Program Files \ MySQL \ MySQL Server 8.0 \ bin”

  6. 在“ C:\ Program Files \ MySQL \ MySQL Server 8.0 \”下创建“数据”文件夹(如果已经存在,请删除其内容!)

  7. 在cmd中键入:mysql --initialize

  8. 在cmd中键入:mysqld --init-file = C:\ change_mysql_pwd.txt

  9. 使用root用户帐户和上面设置的密码登录。

  10. 删除C:\ change_mysql_pwd.txt文件

Enyoj ...