我正在做一个概念验证,将现有的 SQL Server 数据库迁移到 Amazon RDS。我设置了 Amazon RDS 数据库(我尝试使用 SQL Server 和 Aurora - 两种情况下的结果相同)。
为了执行迁移,Amazon 设置了复制任务。此任务可以连接到源数据库(位于公共互联网上),但始终无法连接到我设置的 Amazon 数据库实例(SQL 服务器、Aurora)。但是,我可以通过客户端工具(SQL Server Management Studio/MySQL 客户端)毫无问题地连接到 Amazon 数据库实例!
因此,看起来 Amazon 不允许其自己的复制任务连接到数据库,但允许外部客户端?!这看起来很奇怪?!
我使用了所有默认设置,没有修改任何网络/安全参数。
如果有人能阐明这一点,我们将不胜感激。
这是我从复制任务中收到的错误消息:
Test Endpoint failed: Application-Status: 1020912, Application-Message: Cannot connect to ODBC provider ODBC general error., Application-Detailed-Message: RetCode: SQL_ERROR SqlState: HY000 NativeError: 2003 Message: [unixODBC][MySQL][ODBC 5.3(w) Driver]Can't connect to MySQL server on 'foobar.ap-southeast-2.rds.amazonaws.com' (110) ODBC general error.
答案1
我想到了一些可能的原因...
你谈论SQL 服务器(= Microsoft SQL Server),但错误消息是关于MySQL- 您确定已经配置了正确的引擎吗?
我假设您使用 DMS(数据库迁移服务) - 如果您的 DMS 实例位于 VPC 中,那么该 VPC 是否与 RDS 具有连接性?DMS 是否与 RDS 位于同一 VPC 中?
RDS 安全组是否允许 DMS 实例访问?
我敢打赌,这要么与网络配置有关,要么与 DMS 与 RDS 配置不匹配有关。根据提供的信息很难判断。
如果你发布更多详细信息关于如何配置 RDS(例如来自控制台的屏幕截图)以及如何配置 DMS 实例(再次屏幕截图),显示子网、VPC 等。否则很难分辨。
您可以尝试的另一件事是在 DMS 所在的同一子网中启动一个小型实例,使用与 DMS 相同的安全组,登录它并尝试从那里访问 RDS 实例。
- 如果它有效,那么将是 DMS-vs-RDS 配置存在问题。
- 如果它不起作用,那么就是网络问题。
希望有帮助:)