做個筆記記錄,如果MYSQL改密碼跳出設定不符合規範的政策時。
登入進去MYSQL指令畫面,確認目前設定方案:
mysql -u 登入帳號
輸入密碼
> show variables like ‘%password%’;
會列出類似這樣:
+----------------------------------------------+-----------------+
| Variable_name | Value |
+----------------------------------------------+-----------------+
| caching_sha2_password_auto_generate_rsa_keys | ON |
| caching_sha2_password_private_key_path | private_key.pem |
| caching_sha2_password_public_key_path | public_key.pem |
| default_password_lifetime | 0 |
| disconnect_on_expired_password | ON |
| mysql_native_password_proxy_users | OFF |
| password_history | 0 |
| password_require_current | OFF |
| password_reuse_interval | 0 |
| report_password | |
| sha256_password_auto_generate_rsa_keys | ON |
| sha256_password_private_key_path | private_key.pem |
| sha256_password_proxy_users | OFF |
| sha256_password_public_key_path | public_key.pem |
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 | <== 8個字元
| validate_password.mixed_case_count | 1 | <== 大小寫字元數
| validate_password.number_count | 1 | <== 數字數
| validate_password.policy | MEDIUM | <== 強度政策
| validate_password.special_char_count | 1 | <== 特殊字元數
+----------------------------------------------+-----------------+
重點就這個造成無法更換密碼或是建立密碼的元凶。
所以我們可以先降低密碼變化難度,再恢復(或者就保持)。
範例,強度政策改成LOW、字元數改成4個、特殊字元數改成不需要。
> set global validate_password.policy=0;
> set global validate_password.length=4;
> set global validate_password.special_char_count =0;
調整後規則再確認一次。
> show variables like '%password%';
+----------------------------------------------+-----------------+
| Variable_name | Value |
+----------------------------------------------+-----------------+
...
| validate_password.length | 4 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | LOW |
| validate_password.special_char_count | 0 |
+----------------------------------------------+-----------------+
調整後,就可以改一個登入者帳號的密碼看看。
> use mysql;
Database changed
> ALTER USER '登入帳號名'@'localhost' identified BY '密碼輸入在這';
Query OK, 0 rows affected (0.02 sec) <== 如果有跳這個訊息就代表修改成功。
其他參考:
https://www.itread01.com/content/1549661438.html
http://n.sfs.tw/content/index/13359?noframe=true