自动找到binlog位置,并进行同步;
?
经过以上操作便完成了mysql主从架构的搭建;
【常见问题的处理方法】
1、场景的模拟
步骤一:主库上面创建表john,并插入3行数据。(这个时候从库和主库的数据是一致的)
mysql> select * from john;
+------+
| id? |
+------+
| 1? ? |
| 2? ? |
| 3? ? |
+------+
3 rows in set (0.19 sec)
步骤二:从库关闭slave状态
mysql> stop slave;
步骤三:主库关闭写binlog
mysql>? set sql_log_bin=off;? 关闭
Query OK, 0 rows affected (0.03 sec)
步骤四:主库插入值4
mysql> insert into john values(4);
Query OK, 1 row affected (0.04 sec)
步骤五:主库启动binlog
mysql> set sql_log_bin=on;
Query OK, 0 rows affected (0.00 sec)
步骤六:主库插入值 5
mysql> insert into john values(5);
Query OK, 1 row affected (0.00 sec)
经过以上步骤,主库和从库中john的值已经不一致了;
主库如下:

从库如下:

步骤六:修改主库id为4的行,这个时候从库就会报错了

?
Retrieved_Gtid_Set: a989adc2-2a8e-11e5-a308-000c296ecd05:1-30? 主库的Gtid序号
Executed_Gtid_Set: a989adc2-2a8e-11e5-a308-000c296ecd05:1-29? 从库执行Gtid序号
?
2、问题原因:由于id=4是没有写日志的,所以id=4并没有同步到从库,当主库删除id=4这条记录的时候,从库找不到这条记录所以报错了;
3、解决方法:GTIDs模式下的主从问题,操作如下:
mysql> stop slave;
mysql> set GTID_NEXT=’268e23d1-2216-11e5-abcc-000c296ecd05:1-30’;? ? #跳过当前从库的该序号
mysql> BEGIN;
mysql> COMMIT;
mysql> SET GTID_NEXT=’AUTOMATIC’;
mysql> START SLAVE;
经过以上操作完成了基于GTIDs的主从数据库的配置和常见问题的处理,单从便捷的角度上确实提高了主从搭建的速度;
--------------------------------------分割线 --------------------------------------
--------------------------------------分割线 --------------------------------------