当前位置: 首页 >数据库 > 006-解决ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)【转】

006-解决ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)【转】

本文转载自:https://blog.csdn.net/hua1011161696/article/details/80666025

解决方案:

    步骤一:关闭数据库服务端mysqld程序

两种方式:

①快捷键 windows + R     ;输入 services.msc  ;   找到MySQL  停止其服务(前提是你之前已经把MySQL加入了系统服务中)

 006-解决ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)【转】 _ JavaClub全栈架构师技术笔记

②在命令行程序中;注意需要以管理员权限运行cmd程序,不然无法关闭mysqld进程

>>tasklist |findstr mysqld        这行命令可以用来查看mysqld是否在运行,在运行中则可以查到它的PID

>>taskkill /F /PID xxxx             xxxx是从前面一条命令得到的PID值

 006-解决ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)【转】 _ JavaClub全栈架构师技术笔记

步骤二:跳过权限登录MySQL 服务器端

在cmd中执行 mysqld --skip-grant-tables 

>>mysqld --skip-grant-tables

 006-解决ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)【转】 _ JavaClub全栈架构师技术笔记

此时cmd程序会阻塞,关闭cmd程序 然后重新以管理员权限运行cmd

然后在cmd命令行中输入 mysql 就能连接上MySQL 服务器端了

>>mysql

然后可以通过sql语句 :SELECT * from mysql.user\G;  来查看服务器端所有的用户信息,重点查看User、Password、authentication_string这三项。这条语句非常关键。

步骤三:修改密码

 依次执行如下sql语句:

update mysql.user set authentication_string=password('321') where user = 'root';
flush privileges;
上面第一条sql语句中 password('密码') 函数中写你想要改成的密码,我这用的是密码321

接着执行:

SELECT * from mysql.user\G;
去找到root用户的authentication_string这项,并把它的值记下来。

MySQL会给密码进行加密,你想要设置的密码进行加密后的值就等于此时authentication_string这项的值

所以接下来把Password这项的值也设置成此时authentication_string项的值就ok了;我设置的密码是321 ,其对应的密文是  *7297C3E22DEB91303FC493303A8158AD4231F486

执行下面两条sql语句:

update mysql.user set password = '*7297C3E22DEB91303FC493303A8158AD4231F486' where user = 'root';
flush privileges;


步骤四:

输入 quit 退出 mysql ;然后就可以直接登录了

>>mysql -u root -p

--------------------------------------------------------------------------------

当然也可以重启下mysqld再登录
再次提醒:需要以管理员权限运行cmd
>>tasklist |findstr mysqld
>>taskkill /F /PID xxxx

然后就是启动mysqld程序
(不知怎么把mysqld加入系统服务中去可看点击打开链接)
>>mysqld

若已经把mysqld程序加入了系统服务中,则需要在系统服务中启动MySQL服务端

快捷键 windows + R     ;输入 services.msc  ;

 006-解决ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)【转】 _ JavaClub全栈架构师技术笔记

最后就是重新登录

>>mysql -u root -p

在Password:处填入你前面设置的密码

补充:修改密码时报语法错误解决方法

问题:

mysql> update mysql.user set authentication_string=password('321') where user = 'root';

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('321') where user = 'root'' at line 1

解决方法:

使用如下语句即可解决

alter user 'root'@'localhost' identified by  '123';

作者:阿布不学习
来源链接:https://www.cnblogs.com/qiuniao/p/12242474.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/database/118055.html

分享给朋友:

“006-解决ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)【转】” 的相关文章