MySQL登录报错“Access denied for user 'xxx'@'localhost'”解决方法

解决Access denied for user ‘root‘@‘localhost‘ (using password: YES) 文章目录Xshell 命令访问MySQL数据库,密码连接 报错!一、报错截图示下:二、分析:三、解决方案:3.1. Windows系统:3.2. Linux 系统 Xshell 命令访问MySQL数据库,密码连接 报错报错内容:Access denied for user 'root'@'localhost' (using password: YES) 在MySQL登录时出现Access denied for user 'root'@'localhost' (using password: YE 阅读详情

报错条目:

ERROR 1045 (28000): Access denied foruser 'mhauser'@'localhost' (using password: YES)

ERROR 1045 (28000): Access denied foruser 'root'@'localhost' (using password: YES)

ERROR 1045 (28000): Access denied foruser 'root'@'192.168.88.130' (using password: NO)

解决方法:

update user set host='%' whereuser='xxx';

GRANT ALL ON *.* TO 'xxx'@'localhost'IDENTIFIED BY '888888';

 

1、普通账户无法登录

[root@www ~]# mysql -u mhauser -p

Enter password:

ERROR 1045 (28000): Access denied for user'mhauser'@'localhost' (using password: YES)

出现该错误的原因为给mhauser分配可以登录的主机时使用SQL:

mysql> GRANT ALL ON *.* TO 'mhauser'@'192.168.88.%'IDENTIFIED BY 'mhapass';

允许远程登录的主机为"192.168.88.%",在同一台服务器登录时主机识别为localhost,故无法登录。

此处使用

1):updateuser set host='%' where user='mhauser';

2):GRANTALL ON *.* TO 'mhauser'@'localhost' IDENTIFIED BY'888888';

即可解决问题

 

方法1演示:

mysql> use mysql

更新密码,可不操作

mysql> update user set password=password('888888')where user='mhauser';

Query OK, 1 row affected (0.05 sec)

Rows matched: 1  Changed: 1  Warnings: 0

mysql> show full processlist;

+----+----------+----------------------+---------+-------------+------+----------------------------------------------------------------+-----------------------+

| Id | User    | Host                | db     | Command    | Time | State                                                         |Info                 |

+----+----------+----------------------+---------+-------------+------+----------------------------------------------------------------+-----------------------+

| 7 | root    | localhost           | hellodb | Sleep      | 6544 |                                                               | NULL                 |

| 9 | root    | localhost           | mydb   | Sleep      | 6897 |                                                               | NULL                  |

| 16 | root    | localhost           | mysql   |Query      |   0 | NULL                                                          | show full processlist |

| 18 | repluser | 192.168.88.130:45967 | NULL   | Binlog Dump |   49 |Has sent all binlog to slave; waiting for binlog to be updated |NULL                 |

+----+----------+----------------------+---------+-------------+------+----------------------------------------------------------------+-----------------------+

4 rows in set (0.00 sec)

mysql>  flushprivileges;

Query OK, 0 rows affected (0.12 sec)

查看mhauser被赋予的权限

mysql> select * from user whereuser='mhauser'\G

*************************** 1. row***************************

                Host: 192.168.88.%  <--可以发现,host192.168.88.%

                User: mhauser

            Password: *DA28842831B3C40F4BC1D3C76CF9AD8CBFDAE1CB

         Select_priv: Y

         Insert_priv: Y

         Update_priv: Y

         Delete_priv: Y

         Create_priv: Y

           Drop_priv: Y

         Reload_priv: Y

       Shutdown_priv: Y

        Process_priv: Y

           File_priv: Y

          Grant_priv: N   <--不具备授权权限

     References_priv: Y

          Index_priv: Y

          Alter_priv: Y

        Show_db_priv: Y

          Super_priv: Y

Create_tmp_table_priv: Y

    Lock_tables_priv: Y

        Execute_priv: Y

     Repl_slave_priv: Y

    Repl_client_priv: Y

    Create_view_priv: Y

      Show_view_priv: Y

 Create_routine_priv: Y

  Alter_routine_priv: Y

    Create_user_priv: Y

          Event_priv: Y

        Trigger_priv: Y

            ssl_type:

          ssl_cipher:

         x509_issuer:

        x509_subject:

       max_questions: 0

         max_updates: 0

     max_connections: 0

 max_user_connections:0

1 row in set (0.00 sec)

重设能够登录的主机,%即为所有。

mysql> update user set host='%' whereuser='mhauser';

Query OK, 1 row affected (0.00 sec)

Rows matched: 1  Changed: 1  Warnings: 0

清空缓存中的权限,刷新权限

mysql>  flushprivileges;

Query OK, 0 rows affected (0.00 sec)

查看字段值是否修改成功

mysql> select host, user, Password, grant_priv fromuser;

+---------------+----------+-------------------------------------------+------------+

| host         | user    | Password                                 | grant_priv |

+---------------+----------+-------------------------------------------+------------+

| localhost    | root    |                                          | Y         |

| www.field.com | root    |                                          | Y         |

| 127.0.0.1    | root    |                                          | Y         |

| 192.168.%.%   |repluser | *00E247AC5F9AF26AE0194B41E1E769DEE1429A29 |N         |

| 192.168.88.%  | repluser |*D98280F03D0F78162EBDBB9C883FC01395DEA2BF | N         |

| %            | mhauser  |*DA28842831B3C40F4BC1D3C76CF9AD8CBFDAE1CB | N         |

+---------------+----------+-------------------------------------------+------------+

6 rows in set (0.18 sec)

测试登录,成功

[root@www ~]# mysql -u mhauser -p

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or\g.

Your MySQL connection id is 23

Server version: 5.1.73-log Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates.All rights reserved.

Oracle is a registered trademark of Oracle Corporationand/or its

affiliates. Other names may be trademarks of theirrespective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear thecurrent input statement.

mysql>

 

方法2演示:

把host改回'192.168.88.%',令其仍旧不能登录。

mysql> update user set host='192.168.88.%' whereuser='mhauser';

Query OK, 0 rows affected (0.01 sec)

Rows matched: 1  Changed: 0  Warnings: 0

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> select host, user, Password, grant_priv fromuser;

+---------------+----------+-------------------------------------------+------------+

| host         | user    | Password                                 | grant_priv |

+---------------+----------+-------------------------------------------+------------+

| localhost    | root    |                                          | Y         |

| www.field.com | root    |                                          | Y         |

| 127.0.0.1    | root    |                                          | Y         |

| 192.168.%.%   |repluser | *00E247AC5F9AF26AE0194B41E1E769DEE1429A29 |N         |

| 192.168.88.%  | repluser |*D98280F03D0F78162EBDBB9C883FC01395DEA2BF | N         |

| 192.168.88.%  | mhauser  |*DA28842831B3C40F4BC1D3C76CF9AD8CBFDAE1CB | N         |

+---------------+----------+-------------------------------------------+------------+

6 rows in set (0.00 sec)

mysql> exit

Bye

[root@www ~]# mysql -u mhauser -p888888

ERROR 1045 (28000): Access denied for user'mhauser'@'localhost' (using password: YES)

此处采用grant方式授权登录

[root@www ~]# mysql -u root

Welcome to the MySQL monitor.  Commands end with ; or\g.

mysql> use mysql

mysql> GRANT ALL ON *.* TO 'mhauser'@'localhost'IDENTIFIED BY '888888';

Query OK, 0 rows affected (0.04 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> select host, user, Password, grant_priv fromuser;

+---------------+----------+-------------------------------------------+------------+

| host         | user    | Password                                 | grant_priv |

+---------------+----------+-------------------------------------------+------------+

| localhost    | root    |                                          | Y         |

| www.field.com | root    |                                          | Y         |

| 127.0.0.1    | root    |                                          | Y         |

| localhost    | mhauser  |*DA28842831B3C40F4BC1D3C76CF9AD8CBFDAE1CB | N         |

| 192.168.%.%   |repluser | *00E247AC5F9AF26AE0194B41E1E769DEE1429A29 |N         |

| 192.168.88.%  | repluser |*D98280F03D0F78162EBDBB9C883FC01395DEA2BF | N         |

| 192.168.88.%  | mhauser  |*DA28842831B3C40F4BC1D3C76CF9AD8CBFDAE1CB | N         |

+---------------+----------+-------------------------------------------+------------+

localhost    | mhauser <--可见以添加该条目

7 rows in set (0.00 sec)

mysql> exit

Bye

测试登录,成功。

[root@www ~]# mysql -u mhauser -p888888

Welcome to the MySQL monitor.  Commands end with ; or\g.

Your MySQL connection id is 35

Server version: 5.1.73-log Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates.All rights reserved.

Oracle is a registered trademark of Oracle Corporationand/or its

affiliates. Other names may be trademarks of theirrespective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear thecurrent input statement.

mysql>

 

2、使用root无法远程登录

该错误原因则是root不具备远程登录其他服务器的权限

[root@test ~]# mysql -u root -h 192.168.88.131

ERROR 1045 (28000): Access denied for user'root'@'192.168.88.130' (using password: NO)

[root@test ~]# mysql -u root

mysql> select host, user, Password, grant_priv fromuser;

+----------------+----------+-------------------------------------------+------------+

| host          | user    | Password                                 | grant_priv |

+----------------+----------+-------------------------------------------+------------+

| localhost     | root    |                                          | Y         |

| test.field.com | root    |                                          | Y         |

| 127.0.0.1     | root    |                                          | Y         |

| %             | field   |                                          | N         |

| 192.168.88.%   |repluser | *D98280F03D0F78162EBDBB9C883FC01395DEA2BF |N         |

| %             | mhauser  |*DA28842831B3C40F4BC1D3C76CF9AD8CBFDAE1CB | N         |

+----------------+----------+-------------------------------------------+------------+

6 rows in set (0.00 sec)

由上表可见,root账户能登录的主机为localhost,test.field.com,127.0.0.1,。

显然,不能登录的原因类似于上述mhauser账户,root账户不具备远程登录其它MySQL服务器的权限,

使用以下任意一个命令即可解决问题:

update user set host='%' whereuser='root';

GRANT ALL ON *.* TO 'root'@'%'IDENTIFIED BY '888888';

当然笔者强烈建议不要使用root远程登录其他MySQL服务器。

mysql数据库空密码导致 Access denied for user ‘‘@‘localhost‘:解决办法 问题描述  在使用远程开发机上下载mysql后发现重新空密码连接时,会导致数据库表显示不全并且报错,查了相关问题,总结一下自己的解决方案。 解决办法 配置mysql vim ${JUMBO_ROOT}/etc/mysql/my.cnf (注意{JUMBO_ROOT}是我安装mysql的路径,注意替换为自己的路径) 修改配置文件 在[mysql]下增加 skip-grant-tables (跳过权限无密码登录,此时登录成功后再用show databases;指令,可以看到原来所有的数据库) 重启mysql 阅读详情

相关推荐

MySQL报错Access denied for user ‘root‘@‘localhost‘的权限问题

MySQL报错Access denied for user 'root'@'localhost'通常由密码错误、用户权限配置不当、用户不存在或MySQL服务未运行引起。常见解决方案包括重置MySQL root密码、检查用户权限、创建或修复用户以及确保MySQL服务正常运行。预防措施包括统一权限管理、使用版本控制、彻底测试连接功能、使用IDE工具辅助以及增加代码健壮性。通过理解错误成因并采取相应措施,可以有效避免和解决此类权限问题,确保MySQL数据库的稳定性和可靠性。

shejizuopin的博客 2844

Windows~~~在MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES) ,并修改MySQL密码

适用于windows安装MySQL 对于出现拒绝访问root用户的解决方案 错误1045(28000):用户'root'@'localhost'(使用密码:YES)拒绝访问 首先解析此英文:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES);解析的地方有...........................................................

A-MING的博客 112万+

ubuntu 16.04安装mysql5.7.17后,登录时出现ERROR 1045 (28000): Access denied for user 'root'@'localhost' 问题解决

一、问题描述     今天,笔者为了练习sql,在ubuntu16.04上安装了mysql。笔者在网上搜索了在ubuntu16.04安装mysql的步骤,并跟着步骤一步步操作,然而,让笔者无法明白的是,网上说在安装mysql的过程会弹出输入密码的窗口,然而笔者在安装的过程中没有弹出任何窗口,而且也没有报错。正当笔者在登录mysql时,问题就出现了,如图: 如图,笔者尝试多种输入方式,但都得

learner_lps的博客 1万+

MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES)无法打开的解决方法

在学习数据库的过程中,总有些奇奇怪怪的问题出现,比如前两天用得好好的,当天一用就崩,真的被崩的一脸懵逼。只能上百度搜索解决方法,百度了好几天,发现很多方法都不怎么适用,有些只能用一半,所以索性自己就总结出那些有用的,前人种树后人乘凉嘛,偶尔当一下前人也是不错的 🍉 🍉 🍉。只希望减少大家搜索时间,比较时间就是金钱 👍 👍 👍。如果文章有什么需要改进的地方还请大佬不吝赐教。👏 👏 👏🌹 🌹 🌹也欢迎你,关注我。👍 👍 👍!!

JMFive的博客 85万+

Access denied for user 'root'@ '*.*.*.*' (using password: YES)

在我们连接数据库的时候,有时会出现“Access denied for user ‘root’@ ‘...’ (using password: YES)”错误提示,出现这个问题主要有以下几种原因; 一、出现 access denied 的原因如下可能是: 1)mysql的服务器停止 2)用户的端口号或者IP导致 3)mysql的配置文件错误----my.ini等文件 4)root用户的密码错误 若...

人生若只如初见的博客 20万+

【已解决MySQL登录时出现ERROR 1045: Access denied for user ‘root‘@‘localhost‘ (using password: YES)无法打开解决方法

【已解决MySQL登录时出现ERROR 1045: Access denied for user ‘root‘@‘localhost‘ (using password: YES)无法打开解决方法

努力才是唯一的入场券。 3万+

navicat连接MySQL报错:1045 - Access denied for user ‘root‘@‘localhost‘ (using password YES)

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。这时候在cmd里面输入mysql-uroot-p就可以不用密码登录了,出现password的时候直接回车可以进入。...

m0_67403076的博客 1万+

MySQL Access denied for user ‘root‘@‘localhost‘ (using password: YES/NO) 的原因以及解决方案

Access denied for user 'root'@'localhost' (using password: YES/NO)的原因以及解决方案 这个错误我想应该是比较常见的一种错误了,但,出现错误并不可怕,可怕的是你并不知道原因,从而不知道如何解决问题。 Access denied for user 'root'@'localhost' (using password: YES/NO),还是先翻译一下比较好,意思为无权限使用root账号本地登录MySQL,括号内是:使用密码:是/不是。 首先.

zsk_john的技术分享专用博客 29万+

mysql 登录报错:ERROR 1045(28000):Access denied for user ‘root‘@‘localhost‘ (using password Yes)

本文主要针对用户名、密码正确,但是登录不了mysql的问题的分析与解决。其他情况可再参考其他的贴子或资料,本文中不会再做过多介绍。

m0_74825003的博客 6762

Access denied for user ‘root‘@‘localhost‘ (using password:YES)解决方法

,先启动Mysql,然后试着登录,输入我记本本上的密码,好极了————————————————之所以想解决并记录这个问题,不是因为 Navicat 中的链接双击打开一直报错(内容如标题),而是在IDEA打算链接数据库的时候,报了同样的错误。百度,csdn每篇文章都写着:你密码错了,尽管我分明已经在建立之初就把密码登记在小本本上,我对自己十分自信,但“报错”显然对我没什么自信。我*,我第一次感觉我找对文章了,这文章不仅有码,还有效果截图,他真的,我哭死。第5步:开另外一个cmd,管理员的身份运行。

m0_57287284的博客 8万+

mysql登录报错:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)

首先解析此英文:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES);在MySQL登录时出现Access denied for user 'root'@'localhost' (using password: YES) 拒绝访问。解析的地方有两处:1.Access denied(拒绝访问);错误1045(28000):用户'root'@'localhost'(使用密码:YES)拒绝访问。

m0_70556273的博客 17万+

MySQL登录时出现Access denied for user 'root'@'localhost' (using password: YES) 拒绝访问,并可修改MySQL密码

首先解析此英文:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES);解析的地方有两处:①Access denied(拒绝访问);②using password:NO/YES 解决方案: 到安装的MySQL的目录下,找my.ini文件; 在[mysqld...

疯猫 35万+

Access denied for user 'root'@'localhost' (using password:YES) 解决方案

Access denied for user 'root'@'localhost':拒绝用户'root'@'localhost'的访问。 出现这个报错语句的一般原因是输入了错误的密码,也有可能是是root帐户默认不开放远程访问权限。 相关的解决方法是重新设置密码和修改root用户的远程访问权限。  解决方案:打开MySQL目录下的my.ini文件,把“skip-grant-tables”添加...

Deronn的博客 14万+

Access denied for user ‘root‘@‘localhost‘ (using password:YES) 解决方案

1、打开MySQL目录下的my.ini文件,把以下命令添加进[mysqld]里面,保存并关闭文件。如果报错说明原来是新版本的mysql数据库下已经没有password这个字段了,password字段正式改成了authentication_string字段,执行以下命令。3、通过命令行进入MySQL的bin目录,输入“mysql -u root -p”(不输入密码),回车即可进入数据库。6、打开MySQL目录下的my.ini文件,删除“skip-grant-tables”,保存并关闭文件。

qq_43102730的博客 7万+

access denied for useruser‘@XX.XX.XX.XX (using password: yes)“ 报错原因

"access denied for user 'user'@XX.XX.XX.XX (using password: yes)" 是一个数据库连接错误信息,表示用户 'user' 在指定的 IP 地址 XX.XX.XX.XX 下尝试进行数据库访问,但由于提供的密码错误,被拒绝了访问权限。

a1142939032的博客 2万+

MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password YES) 拒绝访问问题解决

每次遇到这种问题在网上找教程都麻烦的要死好多都很复杂且尝试了没有用,因此自己写博客以便之后查看。

bhegi_seg的博客 2万+

MySQL: Access denied for user ‘root‘@‘localhost‘ (using password: YES)

这个问题困扰了我2天。这里把踩坑过程记录下来,鼓励自己,警示他人。 环境:Windows系统,MySQL5.7.25.0 1. Access denied for user 'root'@'localhost' (using password: YES) 这个错误的字面意思是:user为root,host为localhost的这个用户在使用密码访问时被拒绝。简单来说就是:用户密码错误。 2...

菜鸡的专栏 1万+

MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES) 拒绝访问,并可修改MySQL密码

适用于windows安装MySQL 对于出现拒绝访问root用户的解决方案 错误1045(28000):用户'root'@'localhost'(使用密码:YES)拒绝访问   首先解析此英文:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES);解析的地方有两...

海海不掉头发的的博客 7万+
上一篇: Python函数设计规范
下一篇: MySQL性能分析工具profiling
Field_Yang
博客等级 码龄10年 85粉丝 124原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值