在MySQL 5.7版本中,使用者密碼政策分成低級LOW、中等MEDIUM和超強STRONG三種,推薦使用中等MEDIUM級别。
我們在安裝MySQL的時候,會通過如下指令來設定使用者密碼政策:
1
<code>shell> mysql_secure_installation</code>
使用如下指令檢視現有的密碼政策
<code>mysql> SHOW VARIABLES </code><code>LIKE</code> <code>'validate_password%'</code><code>;</code>
validate_password_number_count參數是密碼中至少含有的數字個數,當密碼政策是MEDIUM或以上時生效。
validate_password_special_char_count參數是密碼中非英文數字等特殊字元的個數,當密碼政策是MEDIUM或以上時生效。
validate_password_mixed_case_count參數是密碼中英文字元大小寫的個數,當密碼政策是MEDIUM或以上時生效。
validate_password_length參數是密碼的長度,這個參數由下面的公式生成
validate_password_number_count+ validate_password_special_char_count+ (2 * validate_password_mixed_case_count)
validate_password_dictionary_file參數是指定密碼驗證的字典檔案路徑。
validate_password_policy這個參數可以設為0、1、2,分别代表從低到高的密碼強度,此參數的預設值為1,如果想将密碼強度改弱,則更改此參數為0。
建立使用者時報錯:
<code>mysql> </code><code>CREATE</code> <code>USER</code> <code>'test'</code><code>@</code><code>'localhost'</code> <code>IDENTIFIED </code><code>BY</code> <code>'test'</code><code>;</code>
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
報錯原因:
指定的密碼沒有符合現有的密碼政策。
解決方法:
可以按照現有政策設定密碼,也可以更改密碼政策。
① 按照現有密碼政策指定密碼
<code>mysql> </code><code>CREATE</code> <code>USER</code> <code>'test'</code><code>@</code><code>'localhost'</code> <code>IDENTIFIED </code><code>BY</code> <code>'System#2016'</code><code>;</code>
Query OK, 0 rows affected (0.16 sec)
② 更改密碼政策,降低密碼的驗證标準
--更改密碼政策為LOW
<code>mysql> </code><code>set</code> <code>global</code> <code>validate_password_policy=0;</code>
Query OK, 0 rows affected (0.00 sec)
--更改密碼長度
<code>mysql> </code><code>set</code> <code>global</code> <code>validate_password_length=0;</code>
--密碼最小長度為4
2
<code>mysql> </code><code>drop</code> <code>user</code> <code>'test'</code><code>@localhost;</code>
Query OK, 0 rows affected (0.07 sec)
--建立長度為3的密碼報錯
<code>mysql> </code><code>CREATE</code> <code>USER</code> <code>'test'</code><code>@</code><code>'localhost'</code> <code>IDENTIFIED </code><code>BY</code> <code>'tes'</code><code>;</code>
--建立長度為4的密碼,4為現有密碼政策的最小長度
Query OK, 0 rows affected (0.01 sec)
MySQL 5.7修改密碼
5.7版本的MYSQL的使用者表的密碼字段變了,不再是password字段,而是authentication_string字段。
然後改密碼可以用:
<code>update</code> <code>mysql.</code><code>user</code> <code>set</code> <code>authentication_string=</code><code>password</code><code>(</code><code>'密碼'</code><code>) </code><code>where</code> <code>user</code><code>=</code><code>'root'</code> <code>and</code> <code>Host = </code><code>'localhost'</code><code>;</code>
或者
<code>set</code> <code>password</code> <code>for</code> <code>'root'</code><code>@</code><code>'localhost'</code><code>=</code><code>password</code><code>(</code><code>'密碼'</code><code>);</code>
本文轉自UltraSQL51CTO部落格,原文連結:http://blog.51cto.com/ultrasql/1924475 ,如需轉載請自行聯系原作者