############下面是win下面的解决方法#############
遇到MySQL“错误代码#1045 Access denied for user 'root'@'localhost' (using password:YES)” 需要重置root账号权限密码,这个一般还真不好解决。
不过,这几天调试的时候真的遇到了这种问题,不能跳过,必须解决才能在 本地调试程序源码,没办法,一点点解决吧。
好在遇到这种问题的情况,大有人在,所以很多就搬现成的,只要能解决问题就行了。
方法:
第一点,停止mysql服务,CMD打开DOS窗口,输入 "net stop mysql ";不过有时候不停止也是无所谓;
第二点,在CMD命令行窗口,进入MYSQL安装目录 比如“E:\APMServ5.2.6\MySQL5.1\bin”(我用的就是APMServer)
如下图:
第三点,在第二点的命令窗口输入命令为:"mysqld -nt --skip-grant-tables"
如果是linux系统,那么是/etc/mysql/mysql.conf.d/f的[mysqld]下面加入:
skip-grant-tables(Mysql 5.7.26,linux 18.10,改完后记得service mysql restart)
作用是,进入mysql安全模式,即当mysql起来后,不用输入密码就能进入数据库。
这时候可以进入数据库后,给自己的数据库重新设置密码就可以了!
如果,还是出现1045错误的话,继续执行以下操作
1.重新打开一个CMD命令行窗口,输入:"mysql -uroot -p",使用空密码的方式登录MySQL(不用输入密码,直接按回车)
2.输入以下命令开始修改root用户的密码(注意:命令中"mysql.user"中间有个“点”)
(旧版本mysql)
"mysql>update mysql.user set password=PASSWORD('新密码') where User='root'; "
(新版本mysql)
mysql> update mysql.user set authentication_string = "appleyuchi" where user = "appleyuchi" ;
mysql> update mysql.user set authentication_string = "appleyuchi" where user = "root" ;
3.刷新权限表
"mysql>flush privileges"
4.退出 :"mysql>quit "
搞定,功成身退!
#################################################3
下面是ubuntu下面的解决方案:
mysql -udebian-sys-maint -p
然后使用/etc/mysql/f中的密码登录
update mysql.user set authentication_string=password('appleyuchi') where user='root';
mysql> GRANT USAGE ON *.* TO 'appleyuchi'@'localhost' IDENTIFIED BY 'appleyuchi' WITH GRANT OPTION;
这了我的用户名和密码都是appleyuchi
mysql> FLUSH PRIVILEGES;
mysql>quit
然后:
mysql u -root -p输入appleyuchi即可登录
参考链接:
/jishu/biji//0319/224.html