天天看點

MySQL 5.7 密碼政策

在MySQL 5.7版本中,使用者密碼政策分成低級LOW、中等MEDIUM和超強STRONG三種,推薦使用中等MEDIUM級别。

我們在安裝MySQL的時候,會通過如下指令來設定使用者密碼政策:   

1

<code>shell&gt; mysql_secure_installation</code>

使用如下指令檢視現有的密碼政策

<code>mysql&gt; 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&gt; </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&gt;  </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&gt; </code><code>set</code> <code>global</code> <code>validate_password_policy=0;</code>

Query OK, 0 rows affected (0.00 sec)

--更改密碼長度   

<code>mysql&gt; </code><code>set</code> <code>global</code> <code>validate_password_length=0;</code>

--密碼最小長度為4   

2

<code>mysql&gt; </code><code>drop</code> <code>user</code> <code>'test'</code><code>@localhost;</code>

Query OK, 0 rows affected (0.07 sec)

--建立長度為3的密碼報錯   

<code>mysql&gt; </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 ,如需轉載請自行聯系原作者

繼續閱讀