centos 7 安装mysql5.7的脚本文件

centos7使用yum安装mysql5.7的方法。 首先在官方(https://dev.mysql.com/downloads/repo/yum/)下载yum源。安装后直接安装mysql就可以。mysql5.7有一些默认的安全策略,比如密码不能太简单,不能从命令行中使用带有mysql密码的命令执行mysql语句。这里做了一下记录,写了一个脚本,省的每次都找答案。

yum -y update

# 生成密码使用
yum -y install expect
# 声明的密码长度是 18个字符,至少两个数字,三个小写,四个大写,5个特殊字符
#mkpasswd -l 18 -d 2 -c 3 -C 4 -s 5

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
yum install -y  mysql mysql-server mysql-devel

mkdir -p /data/mysql
chown mysql:mysql /data/mysql

sed -i -e '/^datadir=/s/^data/#data/' \
       -e '/datadir/adatadir=\/data\/mysql' \
       /etc/my.cnf

#
#[mysqld] # 该配置下填写, 最好不要这么做,除非就是做个测试。
#validate_password_policy=0
#validate_password_length=1
#
# sed -i  '/^\[mysqld\]/avalidate_password_policy=0\nvalidate_password_length=1' /etc/my.cnf

# service mysqld start
systemctl start mysqld.service

sleep 2

# 从日志中找到安装的密码
MYSQL_PASSWORD=`cat /var/log/mysqld.log | grep password | head -1 | awk '{print $NF}'`

# 密码写入的配置文件中,这样就可以直接使用mysql命令,不用写明密码
sed -i  "1i[client]\nport = 3306\nhost = localhost\nuser = root\npassword = \"$MYSQL_PASSWORD\"\n" /etc/my.cnf

# 生成一个新的密码, mysql5.7的安全策略必须修改密码后才可以使用
NEW_PASSWORD=`mkpasswd -l 18 -d 2 -c 3 -C 4 -s 5`

# 更新mysql密码
mysql --connect-expired-password  -e "set password = password('$NEW_PASSWORD')";

# 在配置文件中更新密码
sed -i  "/password/s/\".*\"/\"$NEW_PASSWORD\"/"  /etc/my.cnf

# 使用新密码测试一下
mysql -e "select now()";

+---------------------+
| now()               |
+---------------------+
| 2018-01-07 16:22:30 |
+---------------------+

发表评论

电子邮件地址不会被公开。 必填项已用*标注