Error1819(HY000):Your password does not satisfy the current policy requirements

出現1819錯誤原因使因爲,MySQL5.7爲了加強安全性,爲root用戶隨機生成了一個臨時密碼,解決方案如下

參考博客地址:https://www.cnblogs.com/ivictor/p/5142809.html

  1. 獲得臨時密碼進入mysql

    # grep 'temporary password' /var/log/mysqld.log
    2019-08-18T00:27:59.187147Z 1 [Note] A temporary password is generated for root@localhost: la2<rej.j12Q
    
  2. 利用臨時密碼進入mysql

    # mysql -uroot -p'la2<rej.j12Q'
    
  3. 此時需要修改密碼,不然會提示Error1820

  4. 爲了方便,如果想直接使用一個簡單密碼,會報1819錯誤

    > set password = password('000000');
    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    

這個與validate_password_policy的值有關,validate_password_policy有以下取值:

Policy Tests Performed
0 or LOW Length
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file

默認是1,即MEDIUM,所以剛開始設置的密碼必須符合長度,且必須含有數字,小寫或大寫字母,特殊字符。

爲了改成簡單密碼,可以做如下操作:

  1. 修改validate_password_policy參數的值(使判斷基於密碼長度)

    > set global validate_password_policy=0;
    Query OK, 0 rows affected (0.00 sec)
    
  2. 修改validate_password_length,即密碼最小的長度限制

    > set global validate_password_length=5;
    Query OK, 0 rows affected (0.00 sec)
    

    此處主要講解決方法,不再敘述密碼長度、特殊字符長度的相互影響,只需明確validate_password_length最小值爲4即可,詳情可看參考博客

  3. 修改密碼

    > set password = password('000000');
    Query OK, 0 rows affected (0.00 sec)
    
  4. 此時修改成功,爲了防止以後不小心改成簡單密碼,可以再把validate_password_policy改爲默認的1或則2
    ps:當然,這只是個人想法,隨意即可

    > set global validate_password_policy=2;
    Query OK, 0 rows affected (0.00 sec)
    
  5. 此時便可使用新密碼重新進入mysql

    > exit;
    # mysql -uroot -p'000000';
    

ps:看到有些博客也有使用skip-grant-tables處理的,我沒再嘗試,大家感興趣的可再試下這種方案

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章