Thursday, November 04, 2004
[MYSQL] Client does not support authentication protocol error
This will solve mysql upgrade problem version earlier than v4.0.12 to higher version.
Client does not support authentication protocol error
MySQL 4.1 uses an authentication protocal based on a password hashing algorithm that is incompatible with that used by older clients. If you upgrade the server to 4.1, attempts to connect to a it with an older client may fail with the following message:
shell> mysql
Client does not support authentication protocol requested
by server; consider upgrading MySQL client
To solve this problem you should do one of the following:
* Upgrade all client programs to use the 4.1.1 or newer client library.
* Use a user account with an old password when connecting from a pre 4.1 client.
* Reset the user that needs a pre-4.1 client to use an old password:
mysql> UPDATE user SET Password = OLD_PASSWORD('mypass')
-> WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;
* Tell the server to use the older password hashing algorithm:
1. Start mysqld with --old-passwords.
2. Set the password for all users that has a long password. You can find these users with:
SELECT * FROM mysql.user WHERE LEN(password) > 16;
For background on password hashing and authentication, see section 4.3.11 Password Hashing in MySQL 4.1.
Client does not support authentication protocol error
MySQL 4.1 uses an authentication protocal based on a password hashing algorithm that is incompatible with that used by older clients. If you upgrade the server to 4.1, attempts to connect to a it with an older client may fail with the following message:
shell> mysql
Client does not support authentication protocol requested
by server; consider upgrading MySQL client
To solve this problem you should do one of the following:
* Upgrade all client programs to use the 4.1.1 or newer client library.
* Use a user account with an old password when connecting from a pre 4.1 client.
* Reset the user that needs a pre-4.1 client to use an old password:
mysql> UPDATE user SET Password = OLD_PASSWORD('mypass')
-> WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;
* Tell the server to use the older password hashing algorithm:
1. Start mysqld with --old-passwords.
2. Set the password for all users that has a long password. You can find these users with:
SELECT * FROM mysql.user WHERE LEN(password) > 16;
For background on password hashing and authentication, see section 4.3.11 Password Hashing in MySQL 4.1.