【问题标题】:MySQL Database replication on Amazon EC2 error 2013Amazon EC2 上的 MySQL 数据库复制错误 2013
【发布时间】:2013-12-04 21:57:43
【问题描述】:

我目前在尝试使用 redhat os 在亚马逊 EC2 上创建 mysql 主/从服务器时遇到问题。在大多数情况下,我都遵循本教程 (http://www.howtoforge.com/how-to-set-up-mysql-database-replication-on-fedora-10)。

当调用 SHOW SLAVE STATUS\G;我明白了:

*************************** 1. row ***************************
          Slave_IO_State: Connecting to master
              Master_Host: XXX.XXX.XXX.XXX
              Master_User: slave_user
              Master_Port: 3306
            Connect_Retry: 60
          Master_Log_File: mysql-bin.000001
      Read_Master_Log_Pos: 337
           Relay_Log_File: mysqld-relay-bin.000001
            Relay_Log_Pos: 4
    Relay_Master_Log_File: mysql-bin.000001
         Slave_IO_Running: No
        Slave_SQL_Running: Yes
          Replicate_Do_DB: testdb
      Replicate_Ignore_DB: 
       Replicate_Do_Table: 
   Replicate_Ignore_Table: 
  Replicate_Wild_Do_Table: 
Replicate_Wild_Ignore_Table:
                Last_Errno: 0
               Last_Error: 
             Skip_Counter: 1
      Exec_Master_Log_Pos: 337
          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: NULL
Master_SSL_Verify_Server_Cert: No
            Last_IO_Errno: 2013
            Last_IO_Error: error connecting to master 'slave_user@XXX.XXX.XXX.XXX:3306' - retry-time: 60  retries: 86400
           Last_SQL_Errno: 0
           Last_SQL_Error:

我的奴隶 my.cnf

[mysqld]
server-id=2
master-host=XXX.XXX.XXX.XXX
master-user=slave_user
master-password=slave_password
master-connect-retry=60
replicate-do-db=mosaicschroma
skip-name-resolve

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

和我的主人 my.cnf

[mysqld]

log-bin = /var/log/mysql/mysql-bin.log
binlog-do-db=mosaicschroma
server-id=1

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

当使用 nmap 检查我是否可以 ping 另一台服务器和端口 3306 时,我收到一个过滤报告,我认为这是正确的。

非常感谢任何帮助,谢谢!

【问题讨论】:

  • 可能在主服务器上仔细检查权限:show grants for 'slave_user'@'%'
  • 感谢您的回复。检查后slave_user已经有授权复制slave
  • 另一个想到的是安全组/防火墙规则。来自 nmap 的“过滤”响应并不令人信服。你可以使用cli mysql客户端从slave连接到master吗?这些是 VPC 还是经典 EC2 实例?

标签: mysql amazon-ec2 database-replication


【解决方案1】:

我会先从从机尝试:

telnet master-machine 3306

如果您收到这样的 mysql 乱码消息,则说明您没有防火墙连接问题:

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
N
5.5.34-log>W~4%]$�>eb;>gi\rGK#mysql_native_password

也像grossvogel 所说,检查您尝试用于连接到主用户的从属用户的授权。

【讨论】:

  • 谢谢,原来我的 EC2 安全组存在问题,修复开放端口后,我能够连接到主服务器。
猜你喜欢
  • 1970-01-01
  • 2016-04-18
  • 2013-10-12
  • 2015-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多