一、一鍵安裝Mysql指令碼
[root@uat01 ~]# cat InstallMysql01.sh #!/bin/bash #2018-10-13 #旅行者-Travel #1.安裝wget yum -y install wget #2、下載mysql的yum源 URL="https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm" wget $URL -P /etc/yum.repos.d/ yum -y install yum-utils #如果沒有該包,下邊執行yum-config-manager不生效 yum -y install /etc/yum.repos.d/mysql80-community-release-el7-1.noarch.rpm if [ $? -eq 0 ];then rm -rf /etc/yum.repos.d/mysql80-community-release-el7-1.noarch* fi yum-config-manager --disable mysql80-community yum-config-manager --enable mysql57-community yum -y install mysql-community-server sleep 5 systemctl start mysqld systemctl enable mysqld systemctl status mysqld if [ $? -eq 0 ];then echo -e "install succefull" result="`grep `temporary password` /var/log/mysqld.log`" p1="`echo $result |awk `{print $NF}``" echo "資料庫密碼為:$p1" fi [root@uat01 ~]#
二、修改策略和密碼
執行完以上指令碼可以看到Mysql的密碼,如下方法登入修改策略,因為預設密碼要求比較高,可以根據自己需求來決定是否更改策略:
install succefull 資料庫密碼為:9aTR&ok>f;1K [root@uat01 ~]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 2 Server version: 5.7.23 Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type `help;` or `h` for help. Type `c` to clear the current input statement. mysql> set global validate_password_policy=0; Query OK, 0 rows affected (0.00 sec) mysql> set global validate_password_length=4; Query OK, 0 rows affected (0.00 sec) mysql> alter user `root`@`localhost` identified by `Yanglt123.`; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> quit
三、資料庫密碼策略:
1、檢視資料庫策略:
因為上文已經將 validate_password_length 值改為4,所以下文顯示為4,預設情況下為8
[root@uat01 ~]# mysql -uroot -p ..... Server version: 5.7.23 MySQL Community
...... mysql> show variables like `validate_password%`; +--------------------------------------+-------+ | Variable_name | Value | +--------------------------------------+-------+ | validate_password_check_user_name | OFF | | validate_password_dictionary_file | | | validate_password_length | 4 | | validate_password_mixed_case_count | 1 | | validate_password_number_count | 1 | | validate_password_policy | LOW | | validate_password_special_char_count | 1 | +--------------------------------------+-------+ 7 rows in set (0.00 sec) mysql>
2、各項值說明
validate_password_policy:密碼安全策略,預設MEDIUM策略
策略 | 檢查規則 |
0 or LOW | Length |
1 or MEDIUM | Length; numeric, lowercase/uppercase, and special characters |
2 or STRONG | Length; numeric, lowercase/uppercase, and special characters; dictionary file |
validate_password_dictionary_file:密碼策略檔案,策略為STRONG才需要
validate_password_length:密碼最少長度 ,測試發現最小值得為4。
validate_password_mixed_case_count:大小寫字元長度,至少1個
validate_password_number_count :數字至少1個
validate_password_special_char_count:特殊字元至少1個
3、修改策略,跟上文第二操作一樣
mysql> set global validate_password_policy=0; Query OK, 0 rows affected (0.00 sec) mysql> set global validate_password_length=4; Query OK, 0 rows affected (0.00 sec), mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
4、修改簡單密碼測試
mysql> alter user `root`@`localhost` identified by `1234`; #測試發現密碼長度最少為4位 Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.01 sec) mysql> quit Bye [root@uat01 ~]# mysql -p Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 5 Server version: 5.7.23 MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type `help;` or `h` for help. Type `c` to clear the current input statement. mysql>