ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,出現(xiàn)這個(gè)問題怎么辦?不用著急,下面給出答案。
為了加強(qiáng)安全性,MySQL5.7為root用戶隨機(jī)生成了一個(gè)密碼,在error log中,關(guān)于error log的位置,如果安裝的是RPM包,則默認(rèn)是/var/log/mysqld.log。
一般可通過log_error設(shè)置
mysql> select @@log_error;
+---------------------+
| @@log_error |
+---------------------+
| /var/log/mysqld.log |
+---------------------+
1 row in set (0.00 sec)
可通過# grep "password" /var/log/mysqld.log 命令獲取MySQL的臨時(shí)密碼
復(fù)制代碼 代碼如下:
2016-01-19T05:16:36.218234Z 1 [Note] A temporary password is generated for root@localhost: waQ,qR%be2(5
用該密碼登錄到服務(wù)端后,必須馬上修改密碼,不然會(huì)報(bào)如下錯(cuò)誤:
mysql> select user();
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
如果只是修改為一個(gè)簡(jiǎn)單的密碼,會(huì)報(bào)以下錯(cuò)誤:
mysql> ALTER USER USER() IDENTIFIED BY '12345678';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
這個(gè)其實(shí)與validate_password_policy的值有關(guān)。
validate_password_policy有以下取值:
默認(rèn)是1,即MEDIUM,所以剛開始設(shè)置的密碼必須符合長(zhǎng)度,且必須含有數(shù)字,小寫或大寫字母,特殊字符。
有時(shí)候,只是為了自己測(cè)試,不想密碼設(shè)置得那么復(fù)雜,譬如說,我只想設(shè)置root的密碼為123456。
必須修改兩個(gè)全局參數(shù):
首先,修改validate_password_policy參數(shù)的值
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
這樣,判斷密碼的標(biāo)準(zhǔn)就基于密碼的長(zhǎng)度了。這個(gè)由validate_password_length參數(shù)來決定。
mysql> select @@validate_password_length;
+----------------------------+
| @@validate_password_length |
+----------------------------+
| 8 |
+----------------------------+
1 row in set (0.00 sec)
validate_password_length參數(shù)默認(rèn)為8,它有最小值的限制,最小值為:
validate_password_number_count
+ validate_password_special_char_count
+ (2 * validate_password_mixed_case_count)
其中,validate_password_number_count指定了密碼中數(shù)據(jù)的長(zhǎng)度,validate_password_special_char_count指定了密碼中特殊字符的長(zhǎng)度,validate_password_mixed_case_count指定了密碼中大小字母的長(zhǎng)度。
這些參數(shù),默認(rèn)值均為1,所以validate_password_length最小值為4,如果你顯性指定validate_password_length的值小于4,盡管不會(huì)報(bào)錯(cuò),但validate_password_length的值將設(shè)為4。如下所示:
mysql> select @@validate_password_length;
+----------------------------+
| @@validate_password_length |
+----------------------------+
| 8 |
+----------------------------+
1 row in set (0.00 sec)
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
mysql> select @@validate_password_length;
+----------------------------+
| @@validate_password_length |
+----------------------------+
| 4 |
+----------------------------+
1 row in set (0.00 sec)
如果修改了validate_password_number_count,validate_password_special_char_count,validate_password_mixed_case_count中任何一個(gè)值,則validate_password_length將進(jìn)行動(dòng)態(tài)修改。
mysql> select @@validate_password_length;
+----------------------------+
| @@validate_password_length |
+----------------------------+
| 4 |
+----------------------------+
1 row in set (0.00 sec)
mysql> select @@validate_password_mixed_case_count;
+--------------------------------------+
| @@validate_password_mixed_case_count |
+--------------------------------------+
| 1 |
+--------------------------------------+
1 row in set (0.00 sec)
mysql> set global validate_password_mixed_case_count=2;
Query OK, 0 rows affected (0.00 sec)
mysql> select @@validate_password_mixed_case_count;
+--------------------------------------+
| @@validate_password_mixed_case_count |
+--------------------------------------+
| 2 |
+--------------------------------------+
1 row in set (0.00 sec)
mysql> select @@validate_password_length;
+----------------------------+
| @@validate_password_length |
+----------------------------+
| 6 |
+----------------------------+
1 row in set (0.00 sec)
當(dāng)然,前提是validate_password插件必須已經(jīng)安裝,MySQL5.7是默認(rèn)安裝的。
那么如何驗(yàn)證validate_password插件是否安裝呢?可通過查看以下參數(shù),如果沒有安裝,則輸出將為空。
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_dictionary_file | |
| validate_password_length | 6 |
| validate_password_mixed_case_count | 2 |
| validate_password_number_count | 1 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 1 |
+--------------------------------------+-------+
6 rows in set (0.00 sec)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- mysql ERROR 1044 (42000): Access denied for user ''''@''localhost'' to database
- ERROR 2002 (HY000): Can''t connect to local MySQL server through socket ''/tmp/mysql.sock''
- mysql輸入中文出現(xiàn)ERROR 1366的解決方法
- MySQL出現(xiàn)SQL Error (2013)連接錯(cuò)誤的解決方法
- 關(guān)于MySQL繞過授予information_schema中對(duì)象時(shí)報(bào)ERROR 1044(4200)錯(cuò)誤