Client does not support authentication protocol requested by server

22,480

Solution 1

The solution is to update the database user’s password using the OLD_PASSWORD function of MySQL. For example:

[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>

Solution 2

It's a known MySQL problem. C.5.2.4. Client does not support authentication protocol:

MySQL 5.1 uses an authentication protocol based on a password hashing algorithm that is incompatible with that used by older (pre-4.1) clients. If you upgrade the server from 4.0, attempts to connect to it with an older client may fail with the following message: "Client does not support authentication protocol requested by server; consider upgrading MySQL client".

To solve this problem, you should use one of the following approaches:
1. Upgrade all client programs to use a 4.1.1 or newer client library.
2. When connecting to the server with a pre-4.1 client program, use an account that still has a pre-4.1-style password.
3. Reset the password to pre-4.1 style for each user that needs to use a pre-4.1 client program.
4. Tell the server to use the older password hashing algorithm.

Share:
22,480
palmic
Author by

palmic

Updated on May 20, 2020

Comments

  • palmic
    palmic about 4 years

    I need to establish PHP4 environment in conjunction with mysql5 and I am facing this problem when I try to connect to mysql.

    Thank you for any trace.