Centos 安装 mysql 5.7

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/V_Junk/article/details/82558979

Centos 安装MySQL5.7

  • 使用前先卸载之前安装的:yum -y remove mysql*
  • .首次启动时会在日志文件中生成一个随机密码,安装前先清空日志文件。不然读取密码时会出错。
    默认目录:/var/log/mysqld.log
  • 使用管理员权限执行
#!/bin/bash

set -e

MYSQL_CONF_DIR='/etc/my.cnf'

wget https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
rpm -ivh  mysql57-community-release-el7-10.noarch.rpm 

yum update -y
yum -y install mysql-server mysql-devel

sed -i 's/^datadir/#datadir/' $MYSQL_CONF_DIR
sed -i '/datadir/a\datadir=\/data\/mysql\n' $MYSQL_CONF_DIR
sed -i '/^datadir/a\character-set-server=utf8\n' $MYSQL_CONF_DIR
sed -i '/^datadir/a\default-storage-engine=INNODB\n' $MYSQL_CONF_DIR

mkdir /data/mysql -p
chown mysql:mysql -R  /data/mysql
service mysqld start

MYSQL_PID=`ps aux | grep -w mysqld | awk '{ if ($1 == "mysql") { print $2}}'`

start_switch=0
while [[ "$MYSQL_PID" == "" ]]
do
    if [[ start_switch -eq 0 ]]; then
        echo "begin start mysql service ...e"
        service mysqld start > /dev/null 2>&1 &
        start_switch=1
    fi
    sleep 1
    MYSQL_PID=`ps aux | grep -w mysqld | awk '{ if ($1 == "mysql") { print $2}}'`
    echo "start switch is $start_switch, mysql starting ......"

done

MYSQL_PASSWD=`grep "A temporary password" /var/log/mysqld.log | awk 'BEGIN {FS="root@localhost: "}  { print $2 }'` 
PASSWD_LEN=`echo $MYSQL_PASSWD | awk '{ print length($0)}'`

if [[ ${PASSWD_LEN} -eq  0 ]]; then
        echo "none passwd"
    exit
fi
echo "password is "${MYSQL_PASSWD}

mysql --connect-expired-password  -u root -p${MYSQL_PASSWD} <<EOF
set global validate_password_length=1;
set global validate_password_policy=0;
SET PASSWORD = PASSWORD("123456");
grant all privileges on *.* to root@'%' identified by '123456';
flush privileges;
EOF

firewall-cmd --permanent --zone=public --add-port=3306/tcp
systemctl restart firewalld.service

猜你喜欢

转载自blog.csdn.net/V_Junk/article/details/82558979