当前位置: 首页 >数据库 > MySQl出现ERROR 1045 (28000): Access denied for user 'root'@'localhost'解决方法

MySQl出现ERROR 1045 (28000): Access denied for user 'root'@'localhost'解决方法

描述

使用到是阿里云服务器,系统为cent Os,给某个账户授权之后,root的账户就登录不进去了,原本root账户设置好了远程连接的权限了,网上搜索了一大堆,终于自己摸索得到了几个方法

产生原因

  • root账户不能远程连接
  • mysql中存在空账户
  • root账户密码错误(可能是密码输错,因为linux输入密码什么都不显示..)

解决方法

以下的三种方法,其实都是要进入mysql的安全模式中,对默认的user表进行修改

设置root账户为远程

#1.停止mysql数据库service mysql stop #2.执行如下命令mysqld_safe --user=mysql --skip-grant-tables --skip-networking & #3.使用root登录mysql数据库mysql -u root mysql 4.修改root账户可以远程连接mysql> update user set host='%' where user='root' and host='localhost';# mysql5.7MySQL请采用如下SQL:mysql> UPDATE user SET authentication_string=PASSWORD('newpassword') where USER='root'; #5.刷新权限(必须,防止mysql的缓存影响)mysql> FLUSH PRIVILEGES; #6.退出mysqlmysql> quit #7.重启mysqlservice mysql restart #8.使用root用户重新登录mysqlmysql -uroot -p Enter password: <输入新设的密码newpassword>

删除空账户

#1.停止mysql数据库service mysql stop #2.执行如下命令mysqld_safe --user=mysql --skip-grant-tables --skip-networking & #3.使用root登录mysql数据库mysql -u root mysql 4.删除空用户mysql> mysql> delete from user where user='';# mysql5.7MySQL请采用如下SQL:mysql> UPDATE user SET authentication_string=PASSWORD('newpassword') where USER='root'; #5.刷新权限(必须,防止mysql的缓存影响)mysql> FLUSH PRIVILEGES; #6.退出mysqlmysql> quit #7.重启mysqlservice mysql restart #8.使用root用户重新登录mysqlmysql -uroot -p Enter password: <输入新设的密码newpassword>

修改密码

#1.停止mysql数据库service mysql stop #2.执行如下命令mysqld_safe --user=mysql --skip-grant-tables --skip-networking & #3.使用root登录mysql数据库mysql -u root mysql 4.修改密码mysql> update user ser password = password('newpassword') where user = 'root';# mysql5.7以上,请采用如下SQL:mysql> UPDATE user SET authentication_string=PASSWORD('newpassword') where USER='root'; #5.刷新权限(必须,防止mysql的缓存影响)mysql> FLUSH PRIVILEGES; #6.退出mysqlmysql> quit #7.重启mysqlservice mysql restart #8.使用root用户重新登录mysqlmysql -uroot -p Enter password: <输入新设的密码newpassword>

参考链接:
百度知道 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
解决 ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

PS:欢迎评论,提出错误,补充解决方法

作者:Stars-one
来源链接:https://www.cnblogs.com/stars-one/p/12253359.html

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

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





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

分享给朋友:

“MySQl出现ERROR 1045 (28000): Access denied for user 'root'@'localhost'解决方法” 的相关文章

性能优化|Mysql优化之Explain精讲 2022年06月02日 21:18:04
mysql之基础查询 2022年06月06日 00:56:31
MySQL学习(4)︱数据库的查询 2022年06月07日 01:52:58
mysql查询最后一条记录 2022年06月08日 19:25:45
mysql查询数据库表的数据行数 2022年06月12日 12:49:23
MySQL基本查询 2022年06月15日 12:06:53
数据库(三):MySQL 查询 2022年06月16日 19:37:17