日期:2014-05-16  浏览次数:20518 次

连接MySQL数据库时常见故障问题的分析与解决

连接MySQL数据库时常见故障问题的分析与解决

 

初学的mysql网友好象经常会碰到mysql无法连接的错误。特开贴收集这样问题的现象和原因。 

先自己扔块砖头出来。 

归纳如下:

故障现象 : 无法连接 mysql 
=============================================================================

错误信息1 :ERROR 1045 (28000): Access denied for user 'usera'@'localhost' (using password:YES)
错误信息2  :ERROR 1045 (28000): Access denied for user 'usera'@'localhost' (using password:NO) 
 
下面,首先分析说明这两种错误信息分别在什么情况下会出现:
 
描述:使用mysql连接命令或连接工具,对远程数据库进行连接时,可能会出现以上两种错误信息,下面以命令的连接方式进行说明。
 
当使用mysql里连接命令时,若带-p参数且指明密码,或带-p参数不指明密码,但在下一步输入密码时有字符串输入,则返回的是
“错误信息1”,若不带-p参数,或带-p参数但在下一步输入密码时,不输入任何字符,则返回的是“错误信息2”,如下所示:
 

C:\Documents and Settings\Administrator>mysql -uroot -h 192.168.8.88 -proot    //带-p参数,并指明密码
ERROR 1045 (28000): Access denied for user
'root'@'192.168.8.123' (using password: YES)

 

C:\Documents and Settings\Administrator>mysql -uroot -h 192.168.8.88 -p    //带-p参数,在下一步进行密码输入
Enter password:     //有字符串输入
ERROR 1045 (28000): Access denied for user
'root'@'192.168.8.123' (using password: YES)

 

C:\Documents and Settings\Administrator>mysql -uroot -h 192.168.8.88    //不带-p参数
ERROR 1045 (28000): Access denied for user
'root'@'192.168.8.123' (using password: NO)

 

C:\Documents and Settings\Administrator>mysql -uroot -h 192.168.8.88 -p   //带-p参数,在下一步进行密码输入
Enter password:    //无字符串输入
ERROR 1045 (28000): Access denied for user
'root'@'192.168.8.123' (using password: NO)

 

上面的对比可总结出一点,使用mysql命令进行登录时,若有密码输入行为并输入了字符,则验证出错后,则返回的错误提示中,对于 (using password: ?)中?的关键字,则返回的是YES,若没有密码输入行为,或无密码字符输入,则返回的是NO。

 

除上面的实验对比,还进行了如下的登录对比操作,并记录了他们所返回错误提示类型,对上面的总结进行验证:

 

1.使用存在的用户,不输入密码

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

2.使用不存在的用户,不输入密码

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