5.7.9.1. Implications of Password Hashing Changes for Application Programs
An upgrade to MySQL version 4.1 or later can cause
compatibility issues for applications that use
PASSWORD()
to generate passwords for their
own purposes. Applications really should not do this, because
PASSWORD()
should be used only to manage
passwords for MySQL accounts. But some applications use
PASSWORD()
for their own purposes anyway.
If you upgrade to 4.1 or later from a pre-4.1 version of MySQL
and run the server under conditions where it generates long
password hashes, an application using
PASSWORD()
for its own passwords breaks.
The recommended course of action in such cases is to modify
the application to use another function, such as
SHA1()
or MD5()
, to
produce hashed values. If that is not possible, you can use
the OLD_PASSWORD()
function, which is
provided for generate short hashes in the old format. However,
you should note that OLD_PASSWORD()
may one
day no longer be supported.
If the server is running under circumstances where it
generates short hashes, OLD_PASSWORD()
is
available but is equivalent to PASSWORD()
.
PHP programmers migrating their MySQL databases from version
4.0 or lower to version 4.1 or higher should see
Section 25.3, “MySQL PHP API”.