我试图备份一个托管在Windows上的旧MySQL数据库,但是需要重置根密码,因为公司没有人记得它。我试过跟踪这些指示,但到目前为止没有运气。我找到了服务(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');
当我运行它时,我会收到一条警告:不建议使用带有隐式默认值的时间戳。请使用--显式_defaults_FOR时间戳服务器选项(更多细节请参见文档)。
然后,mysqld在停止之前似乎运行了几秒钟(我通过打开任务管理器来确认这一点。我看到mysqld.exe弹出然后消失,命令提示符在窗口中返回。
在启动服务备份后,尝试使用此新密码登录不起作用。我不知所措,尝试了几种不同的方法来重置密码,但没有一种方法有效。我遗漏了什么吗?
编辑:我注意到如果不包括--init-file选项,它将在没有stopping...however的情况下启动并继续运行,因为它没有运行命令,所以在本例中没有重置密码。
发布于 2020-12-09 10:18:36
请按照以下步骤在Windows上重置您的MySQL密码:
碰巧您忘记了您的MySQL根用户密码。你在网上找到的答案根本行不通。一如既往,在Moder软件趋势网站上有一个完整而简单的解决方案。只要按照这些步骤走,你就可以走了。
恩育..。
https://stackoverflow.com/questions/41026066
复制相似问题