MySQL5.7 開始,增加了很多安全性的更新。老版本的用戶可能會有一些不習慣,這里介紹關于5.7版本的數據庫密碼問題。
5.7.6 以后的版本
5.7.6 以后的版本在啟動數據庫的時候,會生成密碼放到日志文件里,像這樣:
| [root@centos-linux ~]# cat /var/log/mysqld.log | grep 'password'2016-07-16T03:07:53.587995Z 1 [Note] A temporary password is generated for root@localhost: 2=s6NZk.t:fz | 
然后使用該密碼登陸數據庫,但是不能進行任何操作,提示需要先修改密碼。
| mysql> show databases;ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. | 
這里修改密碼就會遇到驗證,簡單的密碼會提示不符合規則
| mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123';ERROR 1819 (HY000): Your password does not satisfy the current policy requirements | 
因為5.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.01 sec) | 
意義如下:
| validate_password_length# 密碼的最小長度,默認為8。validate_password_mixed_case_count# 至少要包含小寫或大寫字母的個數,默認為1。validate_password_number_count# 至少要包含的數字的個數,默認為1。validate_password_policy # 強度等級,可設置為0、1、2。 【0/LOW】:只檢查長度。 【1/MEDIUM】:在0等級的基礎上多檢查數字、大小寫、特殊字符。 【2/STRONG】:在1等級的基礎上多檢查特殊字符字典文件,此處為1。validate_password_special_char_count# 至少要包含的特殊字符的個數,默認為1。 | 
所以初始設置密碼比如大于8位,包含數字,大小寫字母,特殊字符。
同時也可以修改上面這些配置減弱密碼強度驗證。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持錯新站長站。
新聞熱點
疑難解答