############下面是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/mysqld.cnf的[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/debian.cnf中的密码登录

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即可登录

 

 

参考链接:

http://blog.lykezhan.com/jishu/biji/2017/0319/224.html 

Logo

更多推荐