本人在master中有两个数据库,姑且叫作A和B,其中,B是要和slave同步滴
而B的数据是由A的触发器写入的
现在的问题是,直接插入B中的数据能和slave的B库同步
由A触发器写入的数据则被slave无视,查看master上的二进制日志,触发器写入的数据没有记录(数据在master中生成正常)!
master的配置(my.cnf)如下:
[mysqld]
bind-address=XX.XX.XX.XX
port=3306
user=mysql
server-id=1
log-bin=database-bin-log
binlog-do-db=B
master是MySQL 4.1.22
slave是MySQL 5.0.45
有谁对MySQL的二进制日志研究透彻的,来通告通告!
另:如果用MySQL Query Browser连master,即使是直接在B中插入数据一样也不写二进制日志,而用mysql命令行客户端则可以,请问有谁知道Query Browser连接参数是怎样?是不是和连接参数有关?

解决方案 »

  1.   

    版本一致(都是5.0.45)也是一样
    而且这个应该只和binlog有关,和slave无关吧
    直接插入的写binlog,用触发器插入的不写binlog
      

  2.   

    master是MySQL 4.1.22
    slave是MySQL 5.0.45 ?
      

  3.   

    master以前是装了5.0.45,只有MySQL5才能用触发器吧。这个是触发器不同步的问题后来想改成MySQL4试试,把master装了MySQL 4.1.22
    我的master和slave都是公网上的服务器
    结果发现用MySQL Query Browser从远程连接master在B中插入数据没有写binlog,自然也没有同步slave的B
    而在同样地方的用mysql -h XX.XX.XX.XX -u root -pXXXXXX远程连接master在B中插入数据写了binlog,slave中的B同步也正常
      

  4.   

    貌似 mysql 4 没有触发器
    如果是这样的话,你用MySQL4肯定有问题
      

  5.   

    数据库A有没有同步?建议翻翻手册中这部分,我似乎记得有说bin-log为statment方式的话,如果当前数据库是A,A的触发器里改了B的数据,B的bin-log不会体现这些更改。
      

  6.   

    binlog-do-db=B 
    是不是这个参数的问题,query时默认的schema不是B,导致binlog没有记录