客户端不支持服务器请求的身份验证协议

时间:2010-11-30 10:33:21

标签: php mysql authentication protocols php4

我需要与mysql5一起建立PHP4环境,当我尝试连接到mysql时,我遇到了这个问题。

感谢您的任何追踪。

3 个答案:

答案 0 :(得分:7)

solution是使用MySQL的OLD_PASSWORD函数更新数据库用户的密码。例如:

[chris@office ~]$ mysql -u root -p mysql

Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 267
Server version: 5.1.41-3ubuntu12.1 (Ubuntu)

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

mysql> use mysql;
Database changed

mysql> update user set Password=OLD_PASSWORD('password') WHERE User='username';

Query OK, 0 rows affected (0.02 sec)
Rows matched: 0  Changed: 0  Warnings: 0

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql>

答案 1 :(得分:3)

这是一个已知的MySQL问题。 C.5.2.4. Client does not support authentication protocol:

  

MySQL 5.1使用基于密码散列算法的身份验证协议,该协议与旧版(4.1之前版本)客户端使用的算法不兼容。如果从4.0升级服务器,尝试使用旧客户端连接服务器可能会失败,并显示以下消息:“客户端不支持请求的身份验证协议   由服务器;考虑升级MySQL客户端“。

     

要解决此问题,您应使用以下方法之一:
     1.升级所有客户端程序以使用4.1.1或更新的客户端库      2.使用4.1之前的客户端程序连接到服务器时,请使用仍具有4.1之前密码的帐户      3.为需要使用4.1之前的客户端程序的每个用户重置密码为4.1之前的样式      4.告诉服务器使用旧的密码散列算法。

答案 2 :(得分:0)

我遇到了同样的问题。我使用的是最新的MySQl 5.7版本

重新安装旧版本的MySQL 5.5并解决了这个问题。

我认为最新MySQL 5.7中有新的身份验证要求

只需重新安装MySQL 5.5。