win7系统下mysql 5.7版本root用户忘记密码怎么解决

来源:互联网 发布:js变量命名的规则 编辑:程序博客网 时间:2024/06/01 08:03

之前安装mysql的时候就一阵瞎操作,导致一段时间后想到要用mysql的时候发现忘记了之前为root设置的密码,然后就..各种数据库不能打开。。不能编辑。

也在网上找过解决方案,但是都会在执行mysqld --skip-grant-tables这一步后cmd界面没有停住,也就是这一步没有起到作用。

(PS:我的mysql的安装路径都是依照默认安装的,所以接下来提到的路径是我本地的路径)

之前我是选择修改了C:\Program Files\MySQL\MySQL Server 5.7这个路径下的 my.ini 文件,修改办法是在文件的末尾加上了一句   skip-grant-tables。

然后接下来我就 net stop mysql57(这是我本地的mysql服务的具体名称)来关闭这个服务, 然后又net start mysql57进行重启[备注一下,可以这样启动和关闭mysql服务的原因是因为我已经把mysql的bin文件添加到环境变量里面去了],然后我就naive得重新开了一个管理员权限的cmd窗口,输入命令mysql -u root -p然后出现Enter password: ,然后我就直接没输密码回车了(呸,说得好像自己知道该输入什么密码一样),然后就报错了  :

mysql -u root -p, can't connect to mysql server on 'localhost' 错误(10061)

所以说上面这些方法是不行的,网上有毒经验贴说只要每一步的命令行都是管理员权限就行了,我也迷信了一把,结果用半个小时证明了它是在吹X~。
那么应该怎么办呢?我在这里说一个我自己亲测有效的办法。
这次我修改的my.ini配置文件是在 C:\ProgramData\MySQL\MySQL Server 5.7 路径下 ,打开文件 在末尾加上了两句话
skip-grant-tables
 skip-grant-tables

然后,保存,关闭文件。 然后 net stop mysql57 ,再 net start mysql57 。

用新的my.ini配置文件重启了msyql之后,我们就可以修改root 的密码了。 在命令行输入 mysql -u root -p,出现让我们输入密码,不管,直接回车(这时候就不会报错了)

然后输入 show databases ;(分号不要忘了233),然后在show出的列表中选择你要修改的那个数据库,比方说名字叫testmysql,就输入 use testmysql;

只时候命令行会输出 Database changed 下面就可以修改密码了。 输入指令update mysql.user set authentication_string = password("NeverforgetPass") where user = "root"and Host = 'localhost';这样我们就把root的密码改成了NeverforgetPass 了。 然后我们输入 flush privileges; 然后在 exit; 就结束了。

最后别忘了把修改的my.ini文件中加上的两行删掉,然后重启一下mysql服务,这样你就会发现你的root的密码已经变成了改成的那个了。 祝好

0 0
原创粉丝点击