1. 手動配置
[root@node01-linux ~]
[root@node01-linux src]
[root@node01-linux src]
debug kernels mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
[root@node01-Linux ~]
[root@node01-Linux ~]
[root@node01-Linux local]
[root@node01-Linux local]
[root@node01-Linux bin]
[root@node01-Linux bin]
[root@node01-Linux ~]
[root@node01-Linux ~]
[root@node01-Linux ~]
[root@node01-Linux ~]
[root@node01-Linux ~]
[root@node01-Linux ~]
[root@node01-Linux ~]
[root@node01-Linux ~]
[root@node01-Linux ~]
[root@node01-Linux ~]
[root@node01-Linux ~]
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
socket = /tmp/mysql3306.sock
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
[mysqld3306]
datadir = /opt/data/3306
port = 3306
socket = /tmp/mysql3306.sock
pid-file = /opt/data/3306/mysql_3306.pid
log-error=/var/log/mysql/3306.log
[mysqld3307]
datadir = /opt/data/3307
port = 3307
socket = /tmp/mysql3307.sock
pid-file = /opt/data/3307/mysql_3307.pid
log-error=/var/log/mysql/3307.log
[mysqld3308]
datadir = /opt/data/3308
port = 3308
socket = /tmp/mysql3308.sock
pid-file = /opt/data/3308/mysql_3308.pid
log-error=/var/log/mysql/3308.log
[root@node01-Linux ~]
[root@node01-Linux ~]
[root@node01-Linux ~]
[root@node01-Linux ~]
[root@node01-Linux ~]
[root@node01-Linux ~]
[root@node01-Linux ~]
[root@node01-Linux ~]
2. 腳本部署
#!/bin/bash
repo=$(ls /etc/yum.repos.d|wc -l)
if [ $repo -eq 0 ];then
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sed -i 's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
fi
yum -y install perl &>/dev/null
install_dir=/usr/local
soft=mysql-5.7.30-linux-glibc2.12-x86_64
datadir=/opt/data
read -p "請輸入創建的實例數:" count
port=3306
id mysql &>/dev/null
if [ $? -ne 0 ];then
useradd -r -M -s /sbin/nologin -u 306 mysql
fi
if [ ! -d $install_dir/$soft ];then
tar xf ${soft}.tar.gz -C /usr/local/
fi
ln -s $install_dir/$soft/ $install_dir/mysql
chown -R mysql.mysql $install_dir/mysql*
echo "export PATH=$install_dir/mysql/bin:\$PATH" > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh
cat > /etc/my.cnf <<EOF
[mysqld_multi]
mysqld = $install_dir/mysql/bin/mysqld_safe
mysqladmin = $install_dir/mysql/bin/mysqladmin
EOF
mkdir -p /var/log/mysql
chown -R mysql.mysql /var/log/mysql
for i in $(seq $count);do
mkdir -p $datadir/$port
chown -R mysql.mysql $datadir
/usr/local/mysql/bin/mysqld --initialize --datadir=$datadir/$port --user=mysql &>/tmp/${port}_tpf
tenpw=$(grep 'password' /tmp/${port}_tpf|awk '{print $NF}')
cat >> /etc/my.cnf <<EOF
[mysqld$port]
datadir = $datadir/$port
port = $port
socket = /tmp/mysql${port}.sock
pid-file = $datadir/$port/mysql_${port}.pid
log-error=/var/log/mysql/${port}.log
EOF
$install_dir/mysql/bin/mysqld_multi start $port
read -p "請輸入新的數據庫密碼:" password
$install_dir/mysql/bin/mysql -uroot -p$tenpw -S /tmp/mysql${port}.sock -e "set password=password('$password');" --connect-expired-password
$install_dir/mysql/bin/mysql -uroot -p$password -S /tmp/mysql${port}.sock -e 'show databases;' &>/dev/null
if [ $? -eq 0 ];then
echo "您的數據庫密碼修改成功"
else
echo "Error your operation fault"
fi
let port++
done