centos7系统下 mysql5.7使用gtid复制,搭建主主模式(互指为主从),也就是双主,同时读写
服务器2台:第一台192.168.16.200 (主从) | 第二台192.168.16.201 (主从)
mysql版本:mysql-5.7.34-linux-glibc2.12
准备:2台服务器上都安装好mysql
修改(第一台)mysql配置文件,然后重启下服务
##第一台
·······
# gtid
gtid-mode=on
enforce-gtid-consistency=on
log-slave-updates=1
server-id=200
auto_increment_offset = 1
auto_increment_increment = 2
relay_log_recovery=ON
relay_log_info_repository=TABLE
master_info_repository=TABLE
sync_master_info=1
master_verify_checksum=1
slave_sql_verify_checksum=1
slave_parallel_workers=2
slave_parallel_type=logical_clock
#binlog
log-bin = master-bin
log-slave-updates=1
binlog_format=Row
log_bin_trust_function_creators=1
# 不同步的数据库
binlog-ignore-db=mysql,sys,performance_schema,information_schema
# 不复制的数据库
replicate_wild_ignore_table=mysql.%
replicate_wild_ignore_table=sys.%
replicate_wild_ignore_table=performance_schema.%
replicate_wild_ignore_table=information_schema.%
·······
修改(第二台)mysql配置文件,然后重启下服务
##第二台
·······
# gtid
gtid-mode=on
enforce-gtid-consistency=on
log-slave-updates=1
server-id=201
auto_increment_offset = 2
auto_increment_increment = 2
relay_log_recovery=ON
relay_log_info_repository=TABLE
master_info_repository=TABLE
sync_master_info=1
master_verify_checksum=1
slave_sql_verify_checksum=1
slave_parallel_workers=2
slave_parallel_type=logical_clock
#binlog
log-bin = master-bin
log-slave-updates=1
binlog_format=Row
log_bin_trust_function_creators=1
# 不同步的数据库
binlog-ignore-db=mysql,sys,performance_schema,information_schema
# 不复制的数据库
replicate_wild_ignore_table=mysql.%
replicate_wild_ignore_table=sys.%
replicate_wild_ignore_table=performance_schema.%
replicate_wild_ignore_table=information_schema.%
.%
·······
登录2台mysql,创建用于同步的用户
##第一台
mysql> grant replication slave on *.* to 'master'@'%' identified by "1q2w3e4r";
##第二台
mysql> grant replication slave on *.* to 'master'@'%' identified by "1q2w3e4r";
登录2台mysql,分别配置同步用户连接到对方mysql
##第一台
mysql> stop slave;
mysql> change master to master_host='192.168.16.201' ,master_user='master',master_password='1q2w3e4r',master_auto_position=1;
mysql> start slave;
mysql> show slave status \G;
##第二台
mysql> stop slave;
mysql> change master to master_host='192.168.16.200' ,master_user='master',master_password='1q2w3e4r',master_auto_position=1;
mysql> start slave;
mysql> show slave status \G;
查看状态信息是否正常
新建数据查看是否同步正常,在其中一台操作,都会同步到另外一台,
配置nginx mysql的tcp转发
## 修改nginx配置文件,在http段外面加上
······
stream{
upstream mysql {
# 负载方法自定义
hash $remote_addr consistent;
server 192.168.16.200:3306 weight=5 max_fails=3 fail_timeout=30s;
server 192.168.16.201:3306 weight=5 max_fails=3 fail_timeout=30s;
}
server {
listen 3333;
proxy_connect_timeout 1s;
proxy_timeout 900s;
proxy_pass mysql;
}
}
http{
······
}
连接测试,在201上面配置nginx负载转发,为了看效果我把负载方法改成了轮询
本文最后记录时间 2024-03-30
文章链接地址:https://me.jinchuang.org/archives/1132.html
本站文章除注明[转载|引用|来源],均为本站原创内容,转载前请注明出处
文章链接地址:https://me.jinchuang.org/archives/1132.html
本站文章除注明[转载|引用|来源],均为本站原创内容,转载前请注明出处