mysql跨域主从复制_MySQL主从复制

MySQL数据库支持单向、双向、链式级联、环状等不同业务场景的数据复制。在复制过程中,一台master服务器充当主服务器,接收来自用户的更新操作,另外一个或多个其他的服务器充当从slave服务器,接收来自master服务器 binlog文件的日志内容,解析出SQL,将SQL更新到从slave服务器,从而使得主从服务器数据保持一致。

如果设置了链式级联复制,那么slave服务器本身除了充当slave服务器外,将同时充当其下联slave服务器的master服务器,链式级联复制类似A→B→C的复制形式。

1. MySQL主从复制原理

MySQL主从复制是一个异步的复制过程,数据从master数据库复制到slave数据库,其逻辑实际上就是slave从 master获取binlog日志,然后在slave上以相同顺序依次执行获取的binlog日志中所记录的所有SQL操作。

在master和slave之间实现主从复制的过程是由三个线程完成,其中有两个线程(SQL 和 I/O )在 slave 端,另一个线程(I/O)在master端。

2. 主从复制操作

2.1 安装两台MySQL服务器

可参考 https://my.oschina.net/houor/blog/3085344 进行安装。

示例:

192.168.68.61 master

192.168.68.62 slave

2.2 配置master数据库

2.2.1 配置my.cnf

在master数据库的my.cnf中添加以下内容

# 设置server-id,master和slave的server-id必须不一样

server-id=61

# 开始并设置binlog日志 log_bin=mysql-bin

expire_logs_days=7

binlog_format = ROW

binlog_row_image = minimal

# 设置不进行主从复制的库

binlog_ignore_db=sys

binlog_ignore_db=mysql

binlog_ignore_db=information_schema

binlog_ignore_db=performance_schema

在slave数据库的my.cnf中添加以下内容

server-id=62

如果不需要级联复制,slave数据库无需开启binlog日志。

2.2.2 添加复制用户

在master数据库中操作:

create user 'replct'@'192.168.68.%' identified by '123456';

grant replication slave on *.* to 'replct'@'192.168.68.%' identified by '123456';

flush privileges;

ps: replication slave 为MySQL同步的必须权限,不必授权all

2.2.3 开启主从复制

先在master服务器上检查当前binlog的索引和位置

mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000004 | 1156 | | | |

+------------------+----------+--------------+------------------+-------------------+

可以看出当前binlog文件为mysql-bin.000004,位置为1156。

接下来在slave服务器上配置并开启主从复制:

mysql> change master to master_host = '192.168.68.61', master_port = 3306, master_user = 'replct', master_password='123456', master_log_file = 'mysql-bin.000004', master_log_pos = 1156

mysql> start slave

2.2.4 检查主从复制开启效果

mysql> show slave status \G

如果看到:

Slave_IO_State: Waiting for master to send event

表明主从复制配置成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值