アプリケーション側でも、PASSWORD()
を使用してパスワードを生成している場合、MySQL
4.1
にアップグレードすると、アプリケーションとの互換性に問題が生じます。本来、PASSWORD()
は MySQL
ユーザのパスワード管理専用であるため、アプリケーションではこの関数を実行すべきではありません。しかし現状では、いくつかのアプリケーション側でも、それぞれの目的で
PASSWORD()
を使用しています。
MySQL バージョンを 4.1
以降にアップグレードして、長いパスワード
ハッシュが生成できる状態でサーバを実行すると、アプリケーションで
PASSWORD()
を使用している場合は、アプリケーションが壊れます。推奨の対処法として、アプリケーションを修正して
SHA1()
または MD5()
など、別の関数を使用してハッシュ値を生成するように設定します。
この別の関数を使用することが不可能な場合は、OLD_PASSWORD()
関数を使用しますが、これは、旧形式の短いハッシュを生成するための関数です。(注意:
OLD_PASSWORD()
は将来サポートしなくなる可能性があります)。
短いハッシュを生成するような状況下でサーバを実行している場合には、
OLD_PASSWORD()
を利用できますが、これは、PASSWORD()
と同等です。
PHP ユーザは、使用している MySQL データベースをバージョン 4.0 以前から、バージョン 4.1 以降にするときには、項23.3. 「MySQL PHP API」 を一読してください。