Mysql之多实例GTID主从复制

 

前引:在一台主机上部署一主两从mysql主从复制

Server version: 5.6.32-log MySQL Community Server (GPL)

该节点IP为192.168.0.77

一、先在本机安装mysql

1、mysql默认是3306端口,安装脚本

cat >> mysql_install.sh << 'EOF'

[root@centos74-ren-m ~]# cat mysql_install.sh 
#! /bin/bash
id mysql
[ $? -eq 0 ] || useradd -M -s /sbin/nologin mysql
yum -y install autoconf libaio* &> /dev/null
[ -d /root/tools ] || mkdir -p /root/tools
[ -d /appliaction ] || mkdir -p /application
if [ -d /root/tools ] ;then
    wget -P /root/tools https://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.32-linux-glibc2.5-x86_64.tar.gz
else
    mkdir -P /root/tools
    exit 1
fi
###Mysql Config####
Mysql_Config() {
cd  /root/tools && tar xf mysql-5.6.32-linux-glibc2.5-x86_64.tar.gz
mv /root/tools/mysql-5.6.32-linux-glibc2.5-x86_64 /application/mysql-5.6.32
ln -s /application/mysql-5.6.32 /application/mysql
cd /application/mysql
chown -R mysql.mysql /application/mysql/data/
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql
cp -rf /application/mysql/support-files/mysql.server /etc/init.d/mysqld
sed -ri "s#/usr/local#/application#g" /etc/init.d/mysqld /application/mysql/bin/mysqld_safe
cp -rf /application/mysql/support-files/my-default.cnf /etc/my.cnf 
/etc/init.d/mysqld start 
/application/mysql/bin/mysqladmin -uroot password "Rcs551552?"
}

Mysql_Config

EOF

2、导入环境变量

echo 'PATH=/application/mysql/bin/:$PATH' >>/etc/profile
source /etc/profile
/etc/init.d/mysqld {start|restart}

3、配置文件编写

cat >> /etc/my.cnf << EOF
[mysqld]
basedir=/application/mysql
datadir=/application/mysql/data/
socket=/tmp/mysql.sock
log-error=/var/log/mysql.log
log-bin=/application/mysql/data/mysql-bin
binlog_format=row
skip-name-resolve
server-id=3306
gtid_mode=on
enforce-gtid-consistency=on
log-slave-updates=1
EOF

/etc/init.d/mysqld restart

4、登录

mysql -uroot -pRcs551552?

二、创建多实例

1、创建多个目录

mkdir -p /data/330{7,8}
chown -R mysql:mysql /data

2、配置多个配置文件

cat >> /data/3307/my.cnf << EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3307
server-id=3307
port=3307
log-bin=/data/3307/mysql-bin
binlog_format=row
socket=/data/3307/mysql.sock
skip-name-resolve
log-error=/data/3307/mysql.log
gtid_mode=on
enforce-gtid-consistency=on
log-slave-updates=1
EOF

cp /data/3307/my.cnf /data/3308/my.cnf
sed -i 's/3307/3308/g' /data/3308/my.cnf

chown -R mysql:mysql /data/3307/my.cnf 
chown -R mysql:mysql /data/3308/my.cnf

3、初始化

/application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/data/3307 --user=mysql 

/application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/data/3308 --user=mysql 

4、开启mysql--3307

mysqld_safe --defaults-file=/data/3308/my.cnf &
mysqld_safe --defaults-file=/data/3307/my.cnf &

5、登录mysql--3307

mysql -S /data/3307/mysql.sock

mysql -S /data/3308/mysql.sock

三、验证结果

1、在主进行用户授权

[root@centos74-ren-gtid ~]# mysql -uroot -pRcs551552?

mysql> grant replication slave on *.* to repl@'192.168.0.%' identified by '123';

2、从进行连接主数据库

3307实例:

[root@centos74-ren-gtid ~]# mysql -S /data/3307/mysql.sock

mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.77',MASTER_USER='repl',MASTER_PASSWORD='123',MASTER_PORT=3306,MASTER_AUTO_POSITION=1;

mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

mysql> show slave status\G

 3308实例:

[root@centos74-ren-gtid ~]# mysql -S /data/3308/mysql.sock

mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.77',MASTER_USER='repl',MASTER_PASSWORD='123',MASTER_PORT=3306,MASTER_AUTO_POSITION=1;
Query OK, 0 rows affected, 2 warnings (0.04 sec)

 3、在主数据库创建数据库,也会同步到3307与3308实例

主:

mysql> create database rencs;

3307与3308实例:

 

posted @ 2020-08-20 22:25  闲云野鹤cs  阅读(212)  评论(0编辑  收藏  举报