mysql 卸载插件_MySQL 插件安装或卸载(window validate_password 为例)
查看插件:
mysql> show plugins;
mysql> select plugin_name,plugin_status,plugin_type,load_option,plugin_library from information_schema.plugins;默認插件目錄:
mysql> show variables like 'plugin_dir';
+---------------+------------------------+
| Variable_name | Value |
+---------------+------------------------+
| plugin_dir | D:\mysql57\lib\plugin\ |
+---------------+------------------------+配置文件中更改插件目錄:
[mysqld]
plugin_dir="D:/mysql57/lib/plugin/"
插件目錄中有較多插件,這是windows中的個數。接下來將安裝密碼策略的插件validate_password.dll。
方法一:啟動服務時添加
# mysqld --plugin-load="validate_password.dll" --validate-password=FORCE_PLUS_PERMANENT
--plugin-load :服務啟動時重新加載插件
--plugin-load-add :對當前插件的補充
-early-plugin-load :加載在初始化插件及存儲引擎之前的插件
--plugin-load=x --plugin-load-add=y 等價于 --plugin-load="x;y"
--plugin-load-add=y --plugin-load=x 等價于 --plugin-load=x
方法二:配置文件中添加(一般不用方法一),隨服務啟動生效。
[mysqld]
plugin-load=validate_password.dll
validate-password = FORCE_PLUS_PERMANENT
# validate-password =ON/OFF/FORCE/FORCE_PLUS_PERMANENT: 是否使用該插件(及強制/永久強制使用)
方法三:在線添加(如不打算重啟服務,可同時使用方法二和方法三)
#在線添加
mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.dll';
#在線卸載
mysql> UNINSTALL PLUGIN validate_password;部分插件安裝結果(第一行記錄為剛才安裝的):
+----------------------------+---------------+--------------------+----------------------+-----------------------+
| plugin_name | plugin_status | plugin_type | load_option | plugin_library |
+----------------------------+---------------+--------------------+----------------------+-----------------------+
| validate_password | ACTIVE | VALIDATE PASSWORD | FORCE_PLUS_PERMANENT | validate_password.dll |
| sha256_password | ACTIVE | AUTHENTICATION | FORCE | NULL |
| PERFORMANCE_SCHEMA | ACTIVE | STORAGE ENGINE | FORCE | NULL |
| partition | ACTIVE | STORAGE ENGINE | ON | NULL |
| ngram | ACTIVE | FTPARSER | ON | NULL |
| mysql_native_password | ACTIVE | AUTHENTICATION | FORCE | NULL |
| MyISAM | ACTIVE | STORAGE ENGINE | FORCE | NULL |
查看插件 validate_password 相關變量:
mysql> show global variables like '%validate_password%';
+--------------------------------------+--------+
| 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 |
+--------------------------------------+--------+validate_password_dictionary_file :驗證密碼的字典文件,與之相同的不可使用
validate_password_length :密碼最少長度
validate_password_number_count :最少數字字符數
validate_password_mixed_case_count :最少大寫和小寫字符數(同時有大寫和小寫)
validate_password_special_char_count :最少特殊字符數
validate_password_policy :密碼安全策略:
0/LOW:只限長度,
1/MEDIUM:限制長度、數字、字母、特殊字符
2/STRONG:限制長度、數字、字母、特殊字符、字典
查看插件?validate_password?相關狀態:
mysql> SHOW STATUS LIKE 'validate_password%';
+-----------------------------------------------+---------------------+
| Variable_name | Value |
+-----------------------------------------------+---------------------+
| validate_password_dictionary_file_last_parsed | 2018-03-05 12:13:06 |
| validate_password_dictionary_file_words_count | 0 |
+-----------------------------------------------+---------------------+validate_password_dictionary_file_last_parsed :字典文件最近讀取時間
validate_password_dictionary_file_words_count :從字典文件的單詞數
測試(當前默認策略:validate_password_policy=MEDIUM)
mysql> create user test@'localhost' identified by '12345678';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> create user test@'localhost' identified by 'Aa_12345';
Query OK, 0 rows affected (0.03 sec)
validate_password_dictionary_file 字典文件可以排除關鍵字,如不允許密碼中使用文件中的字符串。
字典文件滿足以下條件:
1. 密碼策略為:STRONG
2. 文件中的字符串每行一個
3. 文件中符串每為小寫,不區分大小寫
4. 文件最大為 1MB
5. 文件字符集為utf8
6. 隨時修改不用重啟服務
7. 文件可讀配置文件內容:D:/mysql57/lib/plugin/dictionary_file
12345
aa_12345在線更改變量:
mysql> set global validate_password_dictionary_file = "D:/mysql57/lib/plugin/dictionary_file";
mysql> set global validate_password_policy = STRONG;
在線更改變量有一個 bug,由于緩存不自動刷新原因,字典文件對于已經存在的插件緩存不會變,所以在線更改上面兩個變量雖然可以更改,但不會刷新緩存(Bug #66697:need ability to flush password validation dictionary file) 。因此在配置文件中設置,并且重啟服務重新加載插件。
plugin-load=validate_password.dll
validate-password = FORCE_PLUS_PERMANENT
validate_password_dictionary_file = "D:/mysql57/lib/plugin/dictionary_file"
validate_password_policy = STRONG測試結果:
mysql> show global variables like '%validate_password%';
+--------------------------------------+---------------------------------------+
| Variable_name | Value |
+--------------------------------------+---------------------------------------+
| validate_password_dictionary_file | D:/mysql57/lib/plugin/dictionary_file |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | STRONG |
| validate_password_special_char_count | 1 |
+--------------------------------------+---------------------------------------+
6 rows in set, 1 warning (0.00 sec)
mysql> create user test@'localhost' identified by 'Aa_12346';
Query OK, 0 rows affected (0.07 sec)
mysql> create user test1@'localhost' identified by 'Aa_12345';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql>使用密碼 “Aa_12346” 不會報錯,而使用密碼 “Aa_12345”則出現錯誤,因為該密碼與字典文件中的 “aa_12345”一樣。
總結
以上是生活随笔為你收集整理的mysql 卸载插件_MySQL 插件安装或卸载(window validate_password 为例)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 完达山一号疑再现东北虎豹国家公园:悠闲自
- 下一篇: php mysql 执行sql文件_PH