使用具有弹性 IP 的 EC2 实例设置 MysqlMM 复制

使用具有弹性 IP 的 EC2 实例设置 MysqlMM 复制

我刚刚启动了两个 EC2 实例,并为每个实例获取了一个弹性 IP。我似乎无法连接。以下是我的配置主要部分:

auto_increment_offset=2

log-bin=master2-bin
binlog-ignore-db=mysql

server-id = 2

master-host = 10.122.191.151
master-user = slaverep
master-password = *********
master-port = 3306

另一台服务器的配置非常相似(但在一些方面 IP 不同)。

当我跑步时:

mysql> show slave status\G;

我看到以下内容:

*************************** 1. row ***************************
           Slave_IO_State: Connecting to master
              Master_Host: 107.20.178.31
              Master_User: replication
              Master_Port: 3306
            Connect_Retry: 60
          Master_Log_File: mysqld-bin.000002
      Read_Master_Log_Pos: 1145380
           Relay_Log_File: mysqld-relay-bin.000005
            Relay_Log_Pos: 618
    Relay_Master_Log_File: mysqld-bin.000002
         Slave_IO_Running: No
        Slave_SQL_Running: No
          Replicate_Do_DB: 
      Replicate_Ignore_DB: 
       Replicate_Do_Table: 
   Replicate_Ignore_Table: 
  Replicate_Wild_Do_Table: 


Replicate_Wild_Ignore_Table: 
                   Last_Errno: 1062
                   Last_Error: Error 'Duplicate entry '2124' for key 'PRIMARY'' on query. Default database: 'phpmyfaq'. Query: 'INSERT INTO 
                            faqsessions
                        (sid, user_id, ip, time)
                            VALUES
                        (2124, -1, '10.223.61.111', 1314625795)'
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 472
              Relay_Log_Space: 1148388
              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: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 1130
                Last_IO_Error: error connecting to master '[email protected]:3306' - retry-time: 60  retries: 86400
               Last_SQL_Errno: 1062
               Last_SQL_Error: Error 'Duplicate entry '2124' for key 'PRIMARY'' on query. Default database: 'phpmyfaq'. Query: 'INSERT INTO 
                            faqsessions
                        (sid, user_id, ip, time)
                            VALUES
                        (2124, -1, '10.223.61.111', 1314625795)'
1 row in set (0.00 sec)

ERROR: 
No query specified

我现在不知道该怎么办...

编辑:

我已修复我的设置以匹配以下内容:MASTER1:

auto_increment_increment = 1
auto_increment_offset = 2

大师2:

auto_increment_increment = 2
auto_increment_offset = 2

答案1

两个服务器都尝试使用相同的自动增量 ID 集,从而导致复制时发生冲突。

要解决此问题,您需要调整auto_increment_offset(第一台服务器上为 1,第二台服务器上为 2)和auto_increment_increment(为 2)。如果您最终添加第三台服务器,则auto_increment_offset需要为 3,并且所有三台服务器都需要auto_increment_increment3。

这将导致服务器 1 使用自动增量 ID 1、3、5、7、9...,而服务器 2 将使用 2、4、6、8、10,从而防止冲突。

相关内容