MySQL includes two plugins that implement native authentication;
that is, authentication against passwords stored in the
Password column of the
mysql.user table. This section describes
mysql_old_password, which implements
authentication against the mysql.user table
using the older (pre-4.1) password hashing method. For
information about mysql_native_password,
which implements authentication using the native password
hashing method, see
Section 6.5.1.1, “The Native Authentication Plugin”. For information
about these password hashing methods, see
Section 6.1.2.4, “Password Hashing in MySQL”.
Passwords that use the pre-4.1 hashing method are less secure than passwords that use the native password hashing method and should be avoided. Pre-4.1 passwords are deprecated and support for them will be removed in a future MySQL release. For account upgrade instructions, see Section 6.5.1.3, “Migrating Away from Pre-4.1 Password Hashing and the mysql_old_password Plugin”.
The mysql_old_password native authentication
plugin is backward compatible. Clients older than MySQL 5.5.7 do
not support authentication plugins but do
use the native authentication protocol, so
they can connect to servers from MySQL 5.5.7 and up.
The following table shows the plugin names on the server and client sides.
Table 6.10 MySQL Old Native Authentication Plugin
| Server-side plugin name | mysql_old_password |
| Client-side plugin name | mysql_old_password |
| Library file name | None (plugins are built in) |
The plugin exists in both client and server form:
The server-side plugin is built into the server, need not be loaded explicitly, and cannot be disabled by unloading it.
The client-side plugin is built into the
libmysqlclient client library as of MySQL
5.5.7 and available to any program linked against
libmysqlclient from that version or
higher.
MySQL client programs can use the
--default-auth option to
specify the mysql_old_password plugin as
a hint about which client-side plugin the program can expect
to use:
shell> mysql --default-auth=mysql_old_password ...
If an account row specifies no plugin name, the server
authenticates the account using either the
mysql_native_password or
mysql_old_password plugin, depending on
whether the password hash value in the
Password column used native hashing or the
older pre-4.1 hashing method. Clients must match the password in
the Password column of the account row.
For general information about pluggable authentication in MySQL, see Section 6.3.7, “Pluggable Authentication”.