问题描述:一台机器为主,一台机器为备,配置比较简单,感觉应该没问题,mysql主备版本都是5.0.95-log。
在主机上执行:show master status显示如下:
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 |     1557 | mydb         |                  | 
+------------------+----------+--------------+------------------+
在备机上执行:show slave status\G显示如下:
************** 1. row ***************************
             Slave_IO_State: Waiting for master to send event
                Master_Host: 192.168.200.37
                Master_User: yhc
                Master_Port: 3306
              Connect_Retry: 60
            Master_Log_File: mysql-bin.000003
        Read_Master_Log_Pos: 1557
             Relay_Log_File: mysql-relay-bin.000002
              Relay_Log_Pos: 479
      Relay_Master_Log_File: mysql-bin.000003
           Slave_IO_Running: Yes
          Slave_SQL_Running: Yes
            Replicate_Do_DB: mydb
从打印上看显示同步成功了。在主机的>mysql终端上执行insert命令,查看主机和备机同步成功。
但是在主机用如下命令执行则同步不成功。
mysql -h127.0.0.1 -uroot -e "insert into mydb.t2 values(1)"
写了一个压力测试程序想看看备机同步能力,同步也不成功。请教各位,在>mysql终端上执行命令和用程序执行命令有什么差别吗?

解决方案 »

  1.   

    你用了replicat-do-db这个参数吗
      

  2.   

    哦 看到了 是用了这个
    要么配置文件把replicat-do-db去掉 然后重启
    要么mysql -h127.0.0.1 -uroot -e "insert into mydb.t2 values(1)"改成
    mysql -h127.0.0.1 -uroot mydb -e "insert into t2 values(1)"有些版本是有这个问题
      

  3.   

    主机配置加入了下面的参数
    server-id = 1
    log-bin=mysql-bin
    relay_log=mysql-relay-bin
    binlog-do-db=mydb备机配置加了下面的参数
    server-id=2
    log-bin=mysql-bin
    relay_log=mysql-relay-bin
    replicate-do-db = mydb