无法连接远程主服务器上的 RDS 从属服务器

无法连接远程主服务器上的 RDS 从属服务器

我想在我的计算机 (MASTER) 上的 VM 上创建托管数据库的副本到 AWS 云 (SLAVE)。

我可以从 EC2 实例连接到 2 DB。

我使用 AWS 脚本设置参数:

mysql> CALL mysql.rds_set_external_master ('<MY.PUBLIC.IP>', 3306, '<username>', '<password>', 'mysqld-bin.0000013', 343, 0);

(当然我的IP,用户名和密码都隐藏在这里)

但是当启动复制(使用 AWS 脚本)时,它一直卡在:

mysql> SHOW SLAVE STATUS\G;
*************************** 1. row ***************************
               Slave_IO_State: Connecting to master
                  Master_Host: <MY-PUBLIC-IP> (censored here)
                  Master_User: slaveuser
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysqld-bin.0000013
          Read_Master_Log_Pos: 343
               Relay_Log_File: relaylog.000001
                Relay_Log_Pos: 4
        Relay_Master_Log_File: mysqld-bin.0000013
             Slave_IO_Running: Connecting
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 

我在 RDS 的安全组中添加了我的公共 IP 和 MYSQL 端口(没有更改它,仍然是 3306)但没有任何反应,没有特别的错误(Last_errno:0 等...)

我错过了什么?

答案1

  1. 您的主数据库虚拟机是否位于 NAT 后面?如果是,您是否获得了MySQL 端口转发从外部到 VM?

  2. 您的 RDS 是否位于其所属的子网中可以访问外部? 即在连接 IGW 的公共子网中,以及公共 IP或者在具有 NAT 网关的私有子网中?

如果您想从 RDS 连接到您的 VM,则这两个条件必须都成立。

希望有帮助:)

答案2

感谢您的回答 :)

  1. 它位于 NAT 后面,但 3306 已转发到它。它可以通过 WAN 访问,我是从 EC2 实例连接的

  2. 你可能是对的,它给了我一个想法,尝试从虚拟机连接到 RDS DB,但是...我不能(连接超时)我不明白为什么,RDS 是公共的 RDS 位于安全组中,接受我的公共 IP 用于 MYSQL 流量

找到了,我修改了我的路线表,一切正常!

谢谢你让我走上正确的道路

相关内容