【MySQL 5.7】
mysql> SHOW VARIABLES LIKE 'validate_password%';
Variable_name | Value |
validate_password_check_user_name |
ON 8 |
【MySQL 8.x】
mysql> SHOW VARIABLES LIKE 'validate_password%';
Variable_name | Value |
validate_password.check_user_name |
ON 8 |
この違いに気づかず、ハマりました。
たとえば
mysql> set global validate_password_length=4;
mysql> set global validate_password_policy=LOW;
ってな具合。
これだと【MySQL 5.7】では有効でも、【MySQL 8.x】ではエラーになります。
【MySQL 8.x】ならば、正しくは
mysql> set global validate_password.length=4;
mysql> set global validate_password.policy=LOW;
Variable_name の表記が1ヵ所変更されています。
【追記】一概に、上記のとおりとはいえませんでした。
$ mysqld --version
/usr/libexec/mysqld Ver 8.0.32 for Linux on x86_64 (Source distribution)
→ Source distribution では、上記のとおりでした。
けれども、MySQL Community Server - GPL の場合では、アンダーバーでつないでいて正解です。たとえば CentOS7 で運用するmysqld Ver 8.0.35 (MySQL Community Server - GPL) では、そうなります。
mysqld --version
/usr/sbin/mysqld Ver 8.0.35 for Linux on x86_64 (MySQL Community Server - GPL)
→ MySQL Community Server - GPL では、ドッドじゃありませんでした。
ぼうっとしていると、チコちゃんではないけれど、MySQLに叱られてしまいます。なかなか気がつきませんでした。
コメント