您好,欢迎访问一九零五行业门户网

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

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
其它类似信息

推荐信息