蝈子

Mysql之多源复制

=============Mysql之多源复制================
步骤一、 配置第一台主服务器
1.主库1#GTID配置 数据库配置
server-id=1
log_bin=mysql-bin
log_slave_updates=1
gtid_mode=on
enforce_gtid_consistency=on
binlog_format=row

2.修改好配置文件,重启mysql服务
service mysqld restart

3.然后进入mysql 终端
mysql -uroot -p

4.创建一个允许从数据库来访问的用户账号(mysql中操作)
#创建账号
create user 'username'@'从机ip' identified by '123456';
#授权
grant privileges on *.* to 'username'@'从机ip' with grant option;
#刷新
FLUSH PRIVILEGES;

5.备份要同步的数据库【db1,db2】 【服务器执行】
mysqldump -uroot -p --master-data=2 --single-transaction --set-gtid-purged=OFF --databases --add-drop-database db1 db2 > db1.sql

步骤二、 配置第二台服务器
重复步骤一,注意server-id 跟第一台服务器不一样。

步骤三、配置从服务器
1.#GTID配置
server-id=126
log_bin=mysql-bin
log_slave_updates=1
gtid_mode=on
enforce_gtid_consistency=on
binlog_format=row
#多源复制从库配置
master_info_repository=table
relay_log_info_repository=table

2.修改好配置文件,重启mysql服务
service mysqld restart

3.导入数据库【步骤一,步骤二导出的数据库,上传到从服务器上】
mysql -uroot -p < db1.sql
mysql -uroot -p < db3.sql

4.然后进入mysql 终端【mysql终端内执行】
mysql> change master to MASTER_HOST='主机IP1', MASTER_USER='主机1创建的用户名', MASTER_PASSWORD='密码', MASTER_PORT=3306, master_auto_position=1 for CHANNEL '渠道名称1';
mysql> change master to MASTER_HOST='主机IP2', MASTER_USER='主机2创建的用户名', MASTER_PASSWORD='密码', MASTER_PORT=3306, master_auto_position=1 for CHANNEL '渠道名称2';

5.开启主从复制【mysql终端内执行】
start slave for channel '渠道名称1';
start slave for channel '渠道名称2';

6.查看主从状态【mysql终端内执行】
show slave status for channel '渠道名称1'\G;
show slave status for channel '渠道名称2'\G;
出现俩个yes,表示已经开始正常工作
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

注意
多个master上不能拥有相同的数据库名,否则在从库会出现数据覆盖的现象;
master1、master2——>slave复制账号要求不一致;
在从库需要设置参数将主从间复制信息记录到表中,见搭建步骤第3步;
如果是新建库,可以跳过备份数据库,导入数据库。

 

posted on 2022-07-27 11:04  蝈子  阅读(173)  评论(0编辑  收藏  举报

导航