测试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 alinuxjishu/9952.html target=_blank class=infotextkey>mount=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主从同步系列教程