mysql链式复制_MySQL主从服务器链式复制配置(ubuntu)

服务器结构:

A、B、C三台服务器; 其中A为新闻数据源,A为B的Master,B为A的Slave,同时也是C的Master;

B服务器从A复制部分数据,C备份A的所有数据;

配置:

Master A的配置

sudo vi /etc/mysql/my.cnf

删除以下参数前的注释并修改

server-id = 1 //分配server-id

log-bin = master-bin //默认mysql-bin,可以不修改

log-bin-index = master-bin.index //非必须

bind-adress = 0.0.0.0 //默认127.0.0.1 不修改可能导致无法访问

修改系统防火墙使B服务器可以访问3306端口,(详查ufw命令)

重启mysql:

sudo /init.d/mysql restart

通过语句:

GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO user@'ip B' IDENTIFIED BY 'password';

给B服务器建立一个可以连接到A的帐号

进入mysql,通过:

show master status;

查看A的状态,记录下file的位置和postion的参数

Slave B的配置

sudo vi /etc/mysql/my.cnf

server-id = 2

log-bin = slave-bin

bind-address = 0.0.0.0

relay-log-index = slave-relay-bin.index //非必须

relay-log = slave-relay-bin //非必须

添加参数:

log-slave-updates = 1

//通常情况,从服务器从主服务器接收到的更新不记入它的二进制日志。

//该选项告诉从服务器将其SQL线程执行的更新记入到从服务器自己的二进制日志。

replicate_wild_do_table = copy_db.copy_table //表示需要复制的库中的表,可以善用%

replicate_wild_ignore_table = ignore_db.ignore_table //不复制的表

至于为什么不使用replicate_do_db和replicate_ignore_db参数,

是为了方式跨库更新时出错,如果能确保不会跨库更新可考虑

重启mysql,进入本机mysql

执行以下语句:

CHANGE MASTER TO MASTER_HOST='server A ip',

MASTER_PORT=3306,

MASTER_USER='user',

MASTER_PASSWORD='password',

MASTER_LOG_FILE='mysql-bin.000001',

MASTER_LOG_POS=0;

//MASTER_LOG_FILE和MASTER_LOG_POS对应A中的file位置和postion参数,表示开始复制的bin文件和位置

start slave; //启动Slave

show slave status; //查看Slave_IO_State参数,如果是Waiting for master to send event,则正常

//正常状态下Slave_IO_Running与Slave_SQL_Running均为yes

//如不能正常链接,根据Slave_IO_State,Slave_IO_Running,Slave_SQL_Running,Last_IO_Error

//等参数查找失败原因

通过:

show master status;

命令记录file位置和postion参数;

给C服务器分配一个帐号用于同步;

方法参照A,防火墙设置参照A;

Slave C的配置

sudo vi /etc/mysql/my.cnf

server-id = 3

relay-log-index = slave-relay-bin.index //非必须

relay-log = slave-relay-bin //非必须

通过CHANGE MASTER TO语句来修改master的参数,参照B的配置;

通过

show slave status;

检查C的状态,参照B

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值