MySQL5.7 修改 root 密碼

MySQL5.7 開始,增長了不少安全性的更新。老版本的用戶可能會有一些不習慣,這裏介紹關於5.7版本的數據庫密碼問題。mysql

5.7.6 之後的版本

5.7.6 之後的版本在啓動數據庫的時候,會生成密碼放到日誌文件裏,像這樣:linux

[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](http://my.oschina.net/u/570656)](http://my.oschina.net/u/570656): 2=s6NZk.t:fz

而後使用該密碼登錄數據庫,可是不能進行任何操做,提示須要先修改密碼。sql

mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

這裏修改密碼就會遇到驗證,簡單的密碼會提示不符合規則shell

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

由於5.7裏引入了一個validate_password插件來檢驗密碼強度。數據庫

默認值分別以下:centos

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、一、2。
    【0/LOW】:只檢查長度。
    【1/MEDIUM】:在0等級的基礎上多檢查數字、大小寫、特殊字符。
    【2/STRONG】:在1等級的基礎上多檢查特殊字符字典文件,此處爲1。
validate_password_special_char_count
# 至少要包含的特殊字符的個數,默認爲1。

因此初始設置密碼好比大於8位,包含數字,大小寫字母,特殊字符。ui

同時也能夠修改上面這些配置減弱密碼強度驗證。this

相關文章
相關標籤/搜索