我正在尝试备份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
选项,它会启动并继续运行而不会停止...但是,因为它没有运行命令,所以密码不是在这种情况下重置。
答案 0 :(得分:0)
请按照以下步骤在Windows上重置您的MySQL密码:
碰巧您忘记了MySQL root用户密码。您在网上找到的答案根本行不通。与往常一样,Moder软件趋势网站上提供了一个完整而简单的解决方案。只需按照这些步骤操作,您就会很方便。
停止MySQl服务@ services.msc
使用以下内容创建文件change_mysql_pwd.txt(用您要为root用户拥有的所需新密码替换YourNewPassword:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';
将文件保存到C:\ change_mysql_pwd.txt
以管理员身份运行CMD.exe(开始-> Cmd->右键单击->以管理员身份运行)
在cmd中键入:cd“ C:\ Program Files \ MySQL \ MySQL Server 8.0 \ bin”
在“ C:\ Program Files \ MySQL \ MySQL Server 8.0 \”下创建“数据”文件夹(如果已经存在,请删除其内容!)
在cmd中键入:mysql --initialize
在cmd中键入:mysqld --init-file = C:\ change_mysql_pwd.txt
使用root用户帐户和上面设置的密码登录。
删除C:\ change_mysql_pwd.txt文件
Enyoj ...