MySQL忘记密码怎么办-MySQL修改密码(亲测可用)
前言:
最近要用到本地的MySQL,结果把密码忘记了。
ERROR 1045 (28000): Access denied for user \'root\'@\'localhost\' (using password: YES)
然后参照网上的教程一顿操作,结果我自己都不知道是啥错了:
ERROR 1130 (HY000): Host \'localhost\' is not allowed to connect to this MySQL server
想着重新安装MySQL比较麻烦,就自己看看能不能死马当作活马医一下。
一、修改MySQL配置文件
想要在没有密码的状态下修改MySQL的密码,必须跳过MySQL登录时的登录密码权限的验证,取消掉这个验证的方式如下:
1、找到MySQL的安装文件中的my.ini文件
一般人应该能找到的吧,配置MySQL的环境变量中也有安装目录的,一般默认安装目录在C盘中。
2、修改my.ini
记事本方式打开my.ini,找到[mysqld]这一行,在下面加入下面两条语句:
skip-name-resolve skip-grant-tables
注意[mysqld]是mysql+d(是小写的L,不是大写的i),最好直接复制,不然很容易输错。
记得ctrl+s保存好
二、重启MySQL服务
1、以管理员身份运行命令行
2、在命令行中输入停止MySQL服务命令:
net stop mysql
3、在命令行中输入开始MySQL服务命令
net start mysql
三、登录MySQL
在重启MySQL服务后,通过命令登录MySQL(不需要密码)
mysql -uroot -p
回车后不用输入密码,直接回车就行。
四、修改密码
进入到MySQL中,在命令行中输入修改命令,修改密码为123456
grant all privileges on *.* to root@\'localhost\' identified by \'123456\';
返回成功的话,密码就修改成功了
但有时候也会报一个错:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
解决办法:
刷新权限。输入一下命令后回车一下,(可以多尝试几次)
flush privileges;
然后再重复第四步骤,修改密码,
五、还原MySQL配置文件
1、第一步我们修改了MySQL的配置文件my.ini,在修改成功后我们需要将配置文件还原。
记得保存!!!
2、重启MySQL服务
net stop mysql
net start mysql
3、使用新密码,登录成功