docs:mysql:authentication_problems

Authentication Problems

In MySQL, users are not only defined by a user name and password, but also by the host they are connecting from. A wildcard character of “%” is used to designate “any” host. The local machine is “localhost”, and any others are set by ip address or host name.

MySQL 4.1 and up uses an authentication protocol based on a password hashing algorithm that is incompatible with that used by older clients. If you upgrade the server from 4.0, attempts to connect to 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 use one of the following approaches:

  • Upgrade all client programs to use a 4.1.1 or newer client library.
  • When connecting to the server with a pre-4.1 client program, use an account that still has a pre-4.1-style password.
  • Reset the password to pre-4.1 style for each user that needs to use a pre-4.1 client program. This can be done using the SET PASSWORD statement and the OLD_PASSWORD() function:
          mysql> SET PASSWORD FOR
              -> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');
  • docs/mysql/authentication_problems.txt
  • Last modified: 2008/08/03 00:25
  • by 127.0.0.1