mysql多实例脚本

    最近,由于工作需求,需要用到mysql的多实例。因为在开始规划的时候没有考虑到这方面的要求,所以在安装完成mysql,并没有做相关多实例的部署。之前有按照官方文档的方法部署过多实例,但是灵活性不够,于是写了一个简单的多实例shell脚本:

#!/bin/bash
#Description: mysql multiple realize

BASEDIR='/usr/local/mysql'
function multiple {
    if [[  -e $1 ]];then
        echo "Please input a port number."
    else
        if [[ -d $BASEDIR/data$1 ]];then
            echo "The datadir is already exist."
        else
            mkdir -R $BASEDIR/data$1
        fi
        
        if [[ -f /etc/my3307.cnf ]];then
            sed "s/3307/$1/g" /etc/my3307.cnf >/etc/my$1.cnf
        else echo "The file my.cnf can not found"
        fi

        /usr/local/mysql/scripts/mysql_install_db --basedir=$BASEDIR --datadir=$BASEDIR/data$1 --user=root &&
        /usr/local/mysql/bin/mysqld --defaults-file=/etc/my$1.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data$1 --plugin-dir=/usr/local/mysql/lib/plugin --user=root --log-error=/usr/local/mysql/data$1/mysql_error.log --open-files-limit=10240 --pid-file=/usr/local/mysql/data$1/$1.pid --socket=/tmp/mysql$1.sock --port=$1 2>&1 &
        
    fi
}
multiple $1

脚本的用法比较简单,只要在后面加上一个端口号就可以了。

你可能感兴趣的:(mysql,多实例)