1、通過rpm包安裝mysql5.7、expect、mysql server
通過MySQL官方的 Yum Repository 安裝MySQL
安裝 expect(下面的sh文件執行時依賴expect,需在server之前安裝)
yum install -y http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum install -y http://mirror.centos.org/centos/7/os/x86_64/Packages/expect-5.45-14.el7_1.x86_64.rpm yum install -y mysql-community-server
若因網絡問題安裝失敗可以嘗試再次執行
例:
2、啟動mysql服務並設置開機自啟動
systemctl start mysqld.service
systemctl enable mysqld.service
3、設置自定義密碼
創建一個sh文件,內容寫入:(變量newpassword為要定義的密碼,默認為root)
#!/bin/bash password=$(grep 'temporary password' /var/log/mysqld.log | awk -F 'localhost: ' '{print $2;}') newpassword=root # <--password expect <<EOF spawn mysql -uroot -p expect "password" send "${password}\n" expect "mysql>" send "set global validate_password_policy=0;\n" expect "mysql>" send "set global validate_password_length=1;\n" expect "mysql>" send "ALTER USER 'root'@'localhost' IDENTIFIED BY \"${newpassword}\";\n" expect "mysql>" send "use mysql;\n" expect "mysql>" send "update user set host='%' where user='root' and host='localhost';\n" expect "mysql>" send "flush privileges;\n" expect eof EOF
例:
注解:
獲取MySQL默認的密碼:grep 'temporary password' /var/log/mysqld.log | awk -F 'localhost: ' '{print $2;}'
關閉密碼必須含有大小寫字母數字和特殊字符的限制:validate_password_policy=0
關閉密碼長度限制:validate_password_length=1
允許被外部訪問:update user set host='%' where user='root' and host='localhost';