欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

[MySQL故障] ERROR 1045 (28000): Access denied for user 'mmm_MySQL

程序员文章站 2022-04-22 10:24:39
...
bitsCN.com

[MySQL故障] ERROR 1045 (28000): Access denied for user 'mmm_agent'@'exxx-tx.com' (using password: YES)

1 error登陆错误

[python]

[uxxx@exxx-0702 ~]$ mysql -hexxx-tx.com --user='mmm_agent' --password='#tx$'

ERROR 1045 (28000): Access denied for user 'mmm_agent'@'exxx-tx.com' (using password: YES)

2 去掉-h参数,能顺利登陆

[python]

[uxxx@exxx-0702 ~]$ mysql --user='mmm_agent' --password='#tx$'

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

Your MySQL connection id is 491

Server version: 5.x.xa-log MySQL tx Reltxse

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

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '/h' for help. Type '/c' to cltxr the current input statement.

mysql>

3 难道是对于-h参数有限制?我换个用户试试看

[sql]

mysql> GRANT ALL PRIVILEGES ON *.* TO 'mg'@'%' IDENTIFIED BY '#tx$';

Query OK, 0 rows affected (0.01 sec)

mysql> exit

[uxxx@exxx-0702 ~]$ mysql -hexxx-tx.com --user='mg' --password='#tx$'

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

Your MySQL connection id is 965

Server version: 5.x.xa-log MySQL tx Reltxse

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

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '/h' for help. Type '/c' to cltxr the current input statement.

mysql>

看来不是对于-h参数的限制问题,应该是别的故障,密码是OK的。

4 去查看mmm_agent用户吧。

[sql]

mysql> select user,host from mysql.user where user='mmm_agent';

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

| user | host |

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

| mmm_agent | % |

| mmm_agent | 10.% |

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

2 rows in set (0.00 sec)

mysql> show grants for mmm_agent@'%';

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

| Grants for mmm_agent@% |

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

| GRANT ALL PRIVILEGES ON *.* TO 'mmm_agent'@'%' IDENTIFIED BY PASSWORD '*77074D8AC9603904375ED54F1D2E14CDACB7842F' |

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

1 row in set (0.00 sec)

mysql> show grants for mmm_agent@'10.%';

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

| Grants for mmm_agent@10.% |

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

| GRANT RELOAD, PROCESS, SUPER, REPLICATION CLIENT ON *.* TO 'mmm_agent'@'10.%' IDENTIFIED BY PASSWORD '*6745119376CF6BD5E0F0A50484A91AE7BD172612' |

| GRANT EXECUTE ON `audit`.* TO 'mmm_agent'@'10.%' |

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

2 rows in set (0.00 sec)

mysql>

-- 看到这里有2个帐号,相同 用户名,不同host,而且密码也不相同,那么我将host为10.%的mmm_agent用户的密码修改成与host为%的mmm_agent用户一样的密码,试试看。

[sql]

GRANT RELOAD, PROCESS, SUPER, REPLICATION CLIENT ON *.* TO 'mmm_agent'@'10.%' IDENTIFIED BY '#tx$';

GRANT EXECUTE ON `audit`.* TO 'mmm_agent'@'10.%'

mysql> GRANT RELOAD, PROCESS, SUPER, REPLICATION CLIENT ON *.* TO 'mmm_agent'@'10.%' IDENTIFIED BY '#tx$';

Query OK, 0 rows affected (0.01 sec)

mysql> GRANT EXECUTE ON `audit`.* TO 'mmm_agent'@'10.%'

-> ;

Query OK, 0 rows affected (0.00 sec)

mysql> exit

Bye

[uxxx@exxx-0702 ~]$ mysql -hexxx-tx.com --user='mmm_agent' --password='#tx$'

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

Your MySQL connection id is 1191

Server version: 5.x.xa-log MySQL tx Reltxse

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

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '/h' for help. Type '/c' to cltxr the current input statement.

mysql>

[sql]

-- 用-h参数登陆mysql成功了。

[总结]:

嗯,可以了,使用[uxxx@exxx-0702 ~]$ mysql -hexxx-tx.com --user='mmm_agent' --password='#tx$' 登陆成功了。

mysql在调用-h参数的时候,如果用户名相同,在host的选择上面,先去匹配范围小的用户,在这个案例中, %比10.%的范围要大得多,所以再用 -hexxx-tx.com -ummm_agent访问的时候直接匹配范围小的10.%用户了,而恰巧mmm_agent@'10.%'用户的密码与mmm_agent@'%'用户的密码不是一样的,就报了如下密码错误的提示:

ERROR 1045 (28000): Access denied for user 'mmm_agent'@'%' (using password: YES)

bitsCN.com