mysql数据库双向同步的配置过程来说其实很简单,如果不出意外的话,不到十条的命令就可以实现。可是要明白为什么要这么操作、各个参数有什么作用却是很难的,虽然数据库主从配置的文章很多,可大部分都是介绍如何操作,少有说明各条命令作用的。本人也没有那么高深的理论水平,谨以此文记录自己实际配置过程中遇到的一些问题及个人对这些问题的猜想,以供自己回味,能帮到别人更好。
首先说说mysql数据库双向同步如果实现的,其实就是分别做了主从同步而已。举个例子:有A、B两台mysql数据库服务器,先做A主B从的设置,然后再做B主A从的设置,从而实现了双向同步。
对于要同步的数据库的选择,可以设置同步所有的数据库,也可以同步部分数据,还可以选择禁止同步某些数据库。看起来好像3个选项,其实是通过my.cnf(mysql数据库的配置文件,[mysqld]段内)两个参数实现的:
binlog-do-db=dojocn
binlog-do-db=test
binlog-ignore-db=mysql
前者为要同步的数据库,后者为禁止同步的数据库。如果想同步所有的数据库,那么无需设置这两个选项;如果只同步某几个数据库,那么设置第一个选项,多个数据库分多行写就行了;如果只是禁止某几个数据库,那么就设置最后的那个选项。这三种方式需根据各自不同的环境进行选择。上面的命令是主服务器端的,从服务器端也有相仿的两条命令进行相关的设置,作用类似:
#需要同步的数据库
replicate-do-db=dojocn
#忽略同步的数据库
re