先规划mysql服务器架构,我计划最少3台,一台作为主服务器,两台作为从服务器,同时其中一台从服务器作为之后的代理服务器(创两台问题也不大但读写分离的时候不明显).
图如下:
本文主要介绍基于gtid的主从复制,这个方法相比于普通的主从复制,配置更加简单.
1.准备环境
三台centos分别部署MySQL 5.7.26
过程略。。。
mkdir /data/binlog
chown mysql.mysql /data/binlog/
2.准备配置文件
主库db01:
cat > /etc/my.cnf <<EOF
[mysqld]
basedir=/application/mysql/
datadir=/data/mysql/data
socket=/tmp/mysql.sock
server_id=01
port=3306
secure-file-priv=/tmp
autocommit=0
log_bin=/data/binlog/mysql-bin
binlog_format=row
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
EOF
slave1(db02):
cat > /etc/my.cnf <<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
server_id=07
port=3306
secure-file-priv=/tmp
autocommit=0
log_bin=/data/binlog/mysql-bin
binlog_format=row
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
EOF
slave2(db03):
cat > /etc/my.cnf <<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
server_id=09
port=3306
secure-file-priv=/tmp
autocommit=0
log_bin=/data/binlog/mysql-bin
binlog_format=row
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
EOF
这里的配置文件就改了个server_id,其他都一样
3.开启mysql服务器
systemctl start mysqld
4.构建主从
master:db01:
grant replication slave on *.* to repli@'192.168.147.%' identified by '123456';
红色的要改成自己的虚拟机网段.
slave:db02,db03:
先登录进入你的从mysql
change master to
master_host='192.168.147.161',
master_user='repli',
master_password='123456',
MASTER_AUTO_POSITION=1;

红色改成你的db01的地址
start slave;//开启slave
show slave status\G

本文详细介绍了如何使用GTID模式配置MySQL主从复制,包括MHA实现高可用性,以及通过Atlas进行读写分离。作者还分享了在Linux上搭建和管理这些技术的步骤及常见问题解决方案。
最低0.47元/天 解锁文章
1020





