mysql复制成功,但从服务器没有复制

Soy*_*eed 8 mysql replication

我已经创建了一个 mysql 主从配置,一切看起来都很好。“显示主人状态;” 从站上没有显示任何错误。这是输出

 Slave_IO_State: Waiting for master to send event
                  Master_Host: 109.123.100.58
                  Master_User: replica
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 106
               Relay_Log_File: relay-bin.000001
                Relay_Log_Pos: 4
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 106
              Relay_Log_Space: 106
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
Run Code Online (Sandbox Code Playgroud)

然而,当主服务器发生变化时,从服务器上的复制似乎没有发生

在主人上。显示主状态

+------------------+----------+--------------+-------------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB        |
+------------------+----------+--------------+-------------------------+
| mysql-bin.000001 |   639495 |              | mysql,informationschema |
+------------------+----------+--------------+-------------------------+
Run Code Online (Sandbox Code Playgroud)

在奴隶 SHOW PROCESSLIST 产量

+-----+-------------+-----------+------+---------+-------+-----------------------------------------------------------------------+------------------+
| Id  | User        | Host      | db   | Command | Time  | State                                                                 | Info             |
+-----+-------------+-----------+------+---------+-------+-----------------------------------------------------------------------+------------------+
| 174 | system user |           | NULL | Connect | 25777 | Waiting for master to send event                                      | NULL             |
| 175 | system user |           | NULL | Connect | 25777 | Has read all relay log; waiting for the slave I/O thread to update it | NULL             |
| 199 | root        | localhost | NULL | Query   |     0 | NULL                                                                  | show processlist |
+-----+-------------+-----------+------+---------+-------+-----------------------------------------------------------------------+------------------+
3 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

我是不是错过了什么

Shl*_*ach 5

您提供的输出非常令人困惑。一方面,大师展示:

mysql-bin.000001   639495 
Run Code Online (Sandbox Code Playgroud)

slave的PROCESSLIST表示replication工作(IO线程连接到master,SQL线程在等待)。

奴隶SHOW SLAVE STATUS再次声称一切都很好,但主人的立场是106

所有这些输出是大致同时发布的吗?如果没有,那么它们就没有价值。

我会检查以下内容:

  • 显而易见:109.123.100.58真的是你的主人吗?
  • SHOW PROCESSLIST主站上是否列出了replica用户下从站建立的连接?
  • 你有不同server-id的主从设置吗?
  • 你有什么replicate-do-*或者replicate-ignore-*在你的设置mysql.cnf文件?

  • 2-没有??分分钟更奇怪。我非常不确定你的奴隶是否真的连接到了正确的主人。 (3认同)

Chr*_*ris -2

您没有告诉从站要复制哪个数据库:变量 Replicate_Do_DB 为空。

尝试添加行

replicate-do-db=name_of_db(其中“name_of_db”是要复制的数据库的名称)

在你的 my.cnf (在从服务器上)并重新启动从服务器。

编辑:同时,我认为我的答案不是正确的解决方案;-)

也许看看这个页面: http: //dev.mysql.com/doc/refman/5.1/en/replication-problems.html