MySQL 5.7 弱密碼限制


MySQL版本從5.5升級到5.7之后,有一些不習慣,比如強制使用復雜密碼。在我的VPS上面每次登錄MySQL都要輸入復雜難記的密碼,安全方面有防火牆限制。
如何破解掉強密碼的限制。

修改當前登錄的密碼
老的修改方式:

mysql> SET PASSWORD=PASSWORD('Root1234@');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

新的修改方式:

mysql> SET password='Root1234@';
或者可以這樣寫
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

如果密碼設置太簡單,MySQL也會報錯:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements。因為MySQL5.7默認安裝了validate_password插件

mysql> SHOW VARIABLES LIKE 'vali%';
+--------------------------------------+--------+
| Variable_name | Value  | +--------------------------------------+--------+ | validate_password_dictionary_file    | |
| validate_password_length | 8      | | validate_password_mixed_case_count   | 1 |
| validate_password_number_count | 1      | | validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      | +--------------------------------------+--------+ 6 rows in set (0.00 sec) 

5.7初始化后,默認會安裝這個插件,若沒有安裝,則SHOW VARIABLES LIKE 'vali%'則會返回空。
對應參數的value值也為默認值,以下是這些值的解釋

validate_password_length 8 # 密碼的最小長度,此處為8。
validate_password_mixed_case_count 1 # 至少要包含小寫或大寫字母的個數,此處為1。
validate_password_number_count 1 # 至少要包含的數字的個數,此處為1。
validate_password_policy MEDIUM # 強度等級,其中其值可設置為0、1、2。分別對應:
【0/LOW】:只檢查長度。
【1/MEDIUM】:在0等級的基礎上多檢查數字、大小寫、特殊字符。
【2/STRONG】:在1等級的基礎上多檢查特殊字符字典文件,此處為1。
validate_password_special_char_count 1 # 至少要包含的個數字符的個數,此處為1。

想要關閉這個插件,則在配置文件中加入以下並重啟mysqld即可:

[mysqld]
validate_password=off

重啟mysqld后通過SHOW PLUGINS可以查到:

+-------------------+----------+-------------------+----------------------+-----+
| validate_password | DISABLED | VALIDATE PASSWORD | validate_password.so | GPL |
+-------------------+----------+-------------------+----------------------+-----+

參考

MySQL 5.7 初始密碼和密碼復雜度問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM