MySQL架构实战1--主主复制

#MySQL实战–主主复制

1 开启二进制复制

  1. 关闭MySQL服务
service mysqld stop
  1. 添加配置
vi /etc/my.cnf

添加以下内容:

log-bin=mysql-bin1  # 二进制文件名
server-id=1   # 服务器id,唯一
binlog-format=mixed #二进制日志格式,有row、statement、mixed三种格式,
#row指的是把改变的内容复制过去,而不是把命令在从服务器上执行一遍,
#statement指的是在主服务器上执行的SQL语句,在从服务器上执行同样的语句。
#MySQL默认采用基于语句的复制,效率比较高。mixed指的是默认采用基于语句
#的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。
binlog-do-db=database   #同步的数据库名称

另一台

log-bin=mysql-bin2
server-id=2
binlog-format=mixed
binlog-do-db=database

######注:
######1. server-id必须是唯一的,每台机器不同。
######2. 如果你不设置server_id(或者显式地将其设置为默认值0),主服务器将拒绝从从节点获得任何连接。
######3. 在复制设置中获得最大的持久性和一致性,对于事务请使用InnoDB,您应该使用innodb_flush_log_at_trx_commit=1和sync_binlog=1在主节点my.cnf文件中设置。
######4. 确保您的复制母版上没有启用skip_networking系统变量。如果网络已被禁用,则从服务器无法与主服务器通信,并且复制失败。

2 创建用于复制的用户

创建一个仅用于复制进程的用户,官方示例:

mysql> CREATE USER 'repl'@'%.example.com' IDENTIFIED BY 'password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.example.com';

实战使用:

mysql> CREATE USER 'repl'@'从节点ip' IDENTIFIED BY 'password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'从节点ip';

3 执行初始化脚本

  1. 建库
  2. 建表
    ######注:使用这种方式最简单,否则还要使用其他备份策略进行操作,提高了运维工作量。请按自己的情况使用。

4 查看主节点当前日志位置

查看复制起点,在主节点上查看:

mysql> FLUSH TABLES WITH READ LOCK;  # 锁住表,保证同步期间不会出现数据修改
mysql > SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin1.000001 | 619       | test         | manual,mysql   |
+------------------+----------+--------------+------------------+

######注:如果能够保证执行执行同步时,不会有客户端进行写操作,可以不用锁(不建议)。

5 设置复制(从)

得到的日志坐标,写在下面命令的master_log_pos属性上。

mysql> CHANGE MASTER TO
    -> master_host='主IP',
    -> master_port=3306,
    -> master_user='repl',
    -> master_password='password',
    -> master_log_file='mysql-bin1.000001',
    -> master_log_pos=619;

6 启动和检查(从)

mysql> start slave;
mysql> show slave status\G; # Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes 即成功

7 主节点释放锁

mysql> unlock tables;

8 测试

往主节点中修改数据,去从节点中查询修改后的数据,验证主备是否真正成功。

9 按照同样的方法配主

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值