Jquery中文网 www.jquerycn.cn
Jquery中文网 >  服务器技术  >  数据库服务器  >  正文 我遇到的mysql主从同步的问题

我遇到的mysql主从同步的问题

发布时间:2014-08-14   编辑:www.jquerycn.cn
测试主从同步的问题,主从同步test库。

测试mysql主从同步的问题,主从同步test库。

主库:
root@ttt 11:00>use test;
Database changed
root@test 11:00>show tables;
+----------------+
| Tables_in_test |
+----------------+
| a |
+----------------+

从库:
root@(none) 11:01>use test;
Database changed
root@test 11:01>show tables;
+----------------+
| Tables_in_test |
+----------------+
| a |
+----------------+

从现有的情况来看两边一致,现在测试同步。

主库:
root@(none) 11:02>use test;
Database changed
root@test 11:02>create table b like a;
Query OK, 0 rows affected (0.00 sec)

root@test 11:02>show tables;
+----------------+
| Tables_in_test |
+----------------+
| a |
| b |
+----------------+

从库:
root@(none) 11:06>use test;
Database changed
root@test 11:06>show tables;
+----------------+
| Tables_in_test |
+----------------+
| a |
| b |
+----------------+

以上情况主从正常同步。

在别的库操作同步的库,如下:

主库:
root@ttt 11:06>use ttt;
Database changed
root@ttt 11:06>create table test.c like test.b;
Query OK, 0 rows affected (0.01 sec)
root@ttt 11:06>use test;
Database changed
root@test 11:06>show tables;
+----------------+
| Tables_in_test |
+----------------+
| a |
| b |
| c |
+----------------+

从库:
root@(none) 11:06>use test;
Database changed
root@test 11:06>show tables;
+----------------+
| Tables_in_test |
+----------------+
| a |
| b |
+----------------+

细心的你可能发现了,数据没有正常同步,什么问题呢?

查看参考手册大致了解了:
--binlog-do-db=db_name
告诉主服务器,如果当前的数据库(即USE选定的数据库)是db_name,应将更新记录到二进制日志中。其它所有没有明显指定的数据库  被忽略。如果使用该选项,你应确保只对当前的数据库进行更新。

对于CREATE DATABASE、ALTER DATABASE和DROP DATABASE语句,有一个例外,即通过操作的数据库来决定是否应记录语句,而不是用当前的数据库。

一个不能按照期望执行的例子:如果用binlog-do-db=sales启动服务器,并且执行USE prices; UPDATE sales.january SET amount=amount+1000;,该语句不写入二进制日志。
--binlog-ignore-db=db_name

告诉主服务器,如果当前的数据库(即USE选定的数据库)是db_name,不应将更新保存到二进制日志中。如果你使用该选项,你应确保只对当前的数据库进行更新。

一个不能按照你期望的执行的例子:如果服务器用binlog-ignore-db=sales启动,并且执行USE prices; UPDATE sales.january SET amount=amount+1000;,该语句不写入二进制日志。

类似于--binlog-do-db,对于CREATE DATABASE、ALTER DATABASE和DROP DATABASE语句,有一个例外,即通过操作的数据库来决定是否应记录语句,而不是用当前的数据库。

也就是说更改库内的数据信息得在要修改的数据库内做操作才会记录到binlog文件中,这样从库才会同步。

>>> 更多内容,请访问:mysql主从复制、mysql主从同步系列教程

您可能感兴趣的文章:
从源码开始搭建MySQL主从服务器的简单配置
我遇到的mysql主从同步的问题
解决mysql主从不同的问题
配置mysql主从复制的一点心得体会
自动监控mysql主从同步的shell脚本代码
修复MySQL主从同步的shell脚本
mysql主从库不同步问题的一个解决方法
MySQL-Proxy读写分离要注意的问题
清除mysql的log-bin日志的方案
mysql主从复制与负载均衡问题解答

[关闭]