ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled) - コピペコードで快適生活 の続き
パスワードの設定
# ユーザ作成時に設定する
CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
# ハッシュ化パスワードを直指定して作る
CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY PASSWORD '*90E462C37378CED12064BB3388827D2BA3A9B689';
# パスワードを変更する
SET PASSWORD FOR 'jeffrey'@'localhost' = PASSWORD('mypass');
# ハッシュ化パスワードを指定して変更する
# GRANT USAGEを使うことで、現在の権限設定に影響なく変更が行える。
GRANT USAGE ON *.* TO 'jeffrey'@'localhost' IDENTIFIED BY PASSWORD '*90E462C37378CED12064BB3388827D2BA3A9B689';
- パスワードのハッシュ化フォーマットは、システム変数old_passwordsの値で決まる。
- ONであれば、old_password
- OFFであれば、native_password
ハッシュ化パスワードの確認
# old_passwordが無効になっている
mysql> SHOW VARIABLES WHERE Variable_name = "old_passwords";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| old_passwords | OFF |
+---------------+-------+
1 row in set (0.00 sec)
# このセッションでだけ有効にするには
# SET old_passwords = 1;
# デフォの値はmy.cnfで設定できる
# old_passwords=1
# native_passwordのハッシュ化パスワード
mysql> SELECT PASSWORD('hogehoge') as pass;
+-------------------------------------------+
| pass |
+-------------------------------------------+
| *0B025000DCF68B1D374153A7005639E320D41D5B |
+-------------------------------------------+
1 row in set (0.00 sec)
# old_passwordのハッシュ化パスワード
# OLD_PASSWORD()を使うことで、old_passwords=OFFの場合でも、old_passwordのハッシュ化ができる。
mysql> SELECT OLD_PASSWORD('hogehoge') as pass;
+------------------+
| pass |
+------------------+
| 0b9eb44c024ed960 |
+------------------+
1 row in set (0.00 sec)
参考