本文是mysql8.0.11数据库 GTID模式的主从复制搭建过程,如有问题还望指正。
1、准备环境
1.1 准备机器
准备两台安装好MySQL的机器:192.168.1.113和192.168.1.108
master:192.168.1.113
slave:192.168.1.108
1.2 防火墙关闭,互相可以访问通
2、开始配置
2.1 master机器配置
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir="D:\mysql-8.0.11-winx64"
# 设置mysql数据库的数据的存放目录
datadir="D:\mysql-8.0.11-winx64\data"
# 允许最大连接数
max_connections=500
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#GTID:主18 #服务器id
server_id=1
#开启gtid模式
gtid_mode=on
#强制gtid一致性,开启后对于特定create table不被支持
enforce_gtid_consistency=on
#binlog
log_bin=master-binlog
log-slave-updates=1
#强烈建议,其他格式可能造成数据不一致
binlog_format=row
#relay log
skip_slave_start=1
2.2 slave机器配置
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir="D:\mysql-8.0.11-winx64"
# 设置mysql数据库的数据的存放目录
datadir="D:\mysql-8.0.11-winx64\data"
# 允许最大连接数
max_connections=500
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#GTID:从
#服务器id
server_id=2#开启gtid模式
gtid_mode=on
#强制gtid一致性,开启后对于特定create table不被支持
enforce_gtid_consistency=on
#binlog
log_bin=master-binlog
log-slave-updates=1#强烈建议,其他格式可能造成数据不一致
binlog_format=row
#relay log
skip_slave_start=1
重启两台机器mysql服务,运行命令
show variables like '%gtid%';
可以看到GTID模式开启
2.3 master运行命令
create user 'repl'@'%' identified by 'repl';
grant replication slave,replication client on *.* to 'repl'@'%';
flush privileges;
2.4 slave运行命令
change master to master_host='192.168.1.113', master_port=3306,master_user='repl', master_password='repl',master_auto_position=1;
start slave;
3 测试
在master上创建一个数据库test;刷新slave数据库,看到有一个test数据库则为成功;