2011.08.24

【MySql】MysqlのOldPasswordについて

そんな問題にあたったのでまとめておきます。

Mysql4.1くらいからパスワードのハッシュが16byteから41byteへあげることで
セキュリティを強化したわけです。

その関係でmysqlクライアントも両方に対応しないといけないようになる。

PHP5.3くらいからは新しい41byteのほうしか対応しないらしい。
そのため旧形式でパスワードが保存されているとアクセスできなくなるらしい。

Mysqlはまだ両方のパスワードに対応しているらしく、保存方法を指定できるらしい。

Mysqlがどちらの方法でパスワードを生成しているか調べる

mysql> SHOW VARIABLES LIKE 'old_passwords';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| old_passwords          | ON    |
+------------------------+-------+

old_passwordsがONは旧形式のものを使っているということ。
セキュリティのことも考えると長いほうがよい。

旧形式のパスワードをやめて41byteの方を使うには
手っ取り早い方法としては my.cnf ファイルに「old-passwords」というのがあると思うのでこれを削除する。
旧形式のパスワード中に作られたアカウントは旧形式のパスワードとして
保存されているので新しくユーザーを作り直す必要がある。

この差でPHP側からMySqlへコネクションをしようとして旧形式パスワードになっていると
あっているにもかかわらずエラーになってしまうことがある。

ここら辺はライブラリで対応してほしいところだけどね・・・

ニャッキ格闘列伝 > プログラム >

前の記事:
次の記事:

関連記事

コメントリスト

コメントなし

コメント



*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

こんなタグが使えるみたいよ:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>