一键安装 mysql-5.6.x 二进制包的脚本

注:此脚本适用于centos安装,具体需要根据实际情况进行测试调整。

# 准备安装包、脚本和my.cnf配置文件,放在同一目录下
[root@centos8 ~]# cat install_mysql-5.6.sh
#!/bin/bash
#wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz
DIR=`pwd`
NAME="/mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz"
FULL_NAME=${DIR}/${NAME}
DATA_DIR="/data/mysql"

yum install libaio perl-devel ncurses-compat-libs -y
# centos8需要安装ncurses-compat-libs包提供libncurses.so.5库

if [ -f ${FULL_NAME} ];then
    echo "install file is exist"
else
    echo "install file isn't exist"
    exit 3
fi

if [ -h /usr/local/mysql ];then
    echo "MySQL already install"
    exit 3
else
    tar xvf ${FULL_NAME} -C /usr/local/src/
    ln -sv /usr/local/src/mysql-5.6.51-linux-glibc2.12-x86_64 /usr/local/mysql
    if id mysql;then
        echo "mysql user is exist,skip create user"
    else
        useradd -r -u 306 -d /data/mysql mysql
    fi

    if id mysql;then
        chown -R mysql.mysql /usr/local/mysql/
        if [ ! -d /data/mysql ];then
            mkdir -pv /data/mysql && chown -R mysql.mysql /data/mysql/
            /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql -basedir=/usr/local/mysql
            cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
            chmod a+x /etc/init.d/mysqld
            cp ${DIR}/my.cnf /etc/my.cnf
            ln -sv /usr/local/mysql/bin/mysql /usr/bin/mysql
            /etc/init.d/mysqld start
            chkconfig --add mysqld
        else
            echo "MySQL data dir already exist"
            exit 3
        fi
    fi
fi
[root@centos8 ~]# 

[root@centos8 ~]# cat my.cnf
[mysqld]
socket=/data/mysql/mysql.sock
user=mysql
symbolic-links=0
datadir=/data/mysql
innodb_file_per_table=1

[client]
port=3306
socket=/data/mysql/mysql.sock

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/tmp/mysql.sock