配置双主模式
配置数据库1
修改1服务器上的数据库配置文件/etc/my.cnf,增加以下配置:
#设置server-id
server-id=1
#开启二进制日志
log-bin=mysql-bin
#开启中继日志
relay-log=relay-log
#设置binlog日志格式
binlog_format=ROW
#设置不进行同步的数据库
binlog-ignore-db=mysql
binlog-ignore-db=sys
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
#设置并行复制线程数,推荐和cpu核数保持一致
slave_parallel_workers=8
#设置组提交的并行复制方式
slave_parallel_type=logical_clock
#开启gtid模式
gtid_mode=on
#设置GTID的一致性
enforce_gtid_consistency=ON
#开启中继日志恢复
relay-log-recovery=1
#设置中继日志信息记录的方式
relay-log-info-repository=TABLE
#设置同步master.info事务间隔
sync_master_info=1
#设置master.info记录方式
master_info_repository=TABLE
#设置binlog日志过期清理时间
expire_logs_days=30
#设置登录验证方式
default_authentication_plugin=mysql_native_password
#开启不区分大小写
#在配置文件内使用该参数需要清空mysql的数据目录,rm -rf /var/lib/mysql/*
#而且在安装mysql后需要执行 mysqld --initialize --lower-case-table-name=1
lower_case_table_names = 1
default-time_zone='+08:00'
登录mysql创建同步用户
mysql> CREATE USER 'repl'@'192.168.1.101' IDENTIFIED BY 'Welcome1!';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.101';
mysql> flush privileges;
重启mysql
systemctl restart mysqld
查看mysql的状态
show master status
配置数据库2
修改1服务器上的数据库配置文件/etc/my.cnf,增加以下配置:
#设置server-id,不能和mysql重复
server-id=2
#开启二进制日志
log-bin=mysql-bin
#开启中继日志
relay-log=relay-log
#设置binlog日志格式
binlog_format=ROW
#设置不进行同步的数据库
binlog-ignore-db=mysql
binlog-ignore-db=sys
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
#设置并行复制线程数,推荐和cpu核数保持一致
slave_parallel_workers=8
#设置组提交的并行复制方式
slave_parallel_type=logical_clock
#开启gtid模式
gtid_mode=on
#设置GTID的一致性
enforce_gtid_consistency=ON
#开启中继日志恢复
relay-log-recovery=1
#设置中继日志信息记录的方式
relay-log-info-repository=TABLE
#设置同步master.info事务间隔
sync_master_info=1
#设置master.info记录方式
master_info_repository=TABLE
#设置binlog日志过期清理时间
expire_logs_days=30
#设置登录验证方式
default_authentication_plugin=mysql_native_password
#开启不区分大小写
#在配置文件内使用该参数需要清空mysql的数据目录,rm -rf /var/lib/mysql/*
#而且在安装mysql后需要执行 mysqld --initialize --lower-case-table-name=1
lower_case_table_names = 1
default-time_zone='+08:00'
登录mysql创建同步用户
mysql> CREATE USER 'repl'@'192.168.1.100' IDENTIFIED BY 'Welcome1!';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.100';
#设置该账号使用普通账号认证
mysql> alter user'repl'@'10.120.72.24' identified with mysql_native_password by 'Xdzn@2022';
mysql> flush privileges;
重启mysql
systemctl restart mysqld
查看mysql的状态
show master status
查看状态时,只有两台显示的一致结果一致时才会同步成功
配置同步
进入服务器2,登录mysql,执行同步语句
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.100',MASTER_PORT=3306,MASTER_USER='repl',MASTER_PASSWORD='Welcome1!',master_auto_position=1;
启动同步
mysql> start slave
mysql> show slave status\G;
#Slave_IO_Running和Slave_SQL_Running都显示为YES说明同步成功