无法通过AWS Schema Conversion Tool连接Amazon Aurora(MySQL兼容版)
排查Amazon Aurora(MySQL兼容版)连接失败问题
从你提供的AWS SCT错误日志来看,核心报错是Communications link failure(通信链路失败),虽然你已经设置了实例公开访问、安全组入站允许任意IP的MySQL流量,但还有几个容易被忽略的关键点需要逐一排查:
1. 先验证基础网络连通性
先跳过数据库层面,直接测试本地到Aurora实例的网络可达性:
- 用
telnet命令测试端口连通性:
如果提示“无法打开连接”,说明本地网络到Aurora的3306端口被阻断了,常见原因:telnet xxxxxxxxxxxxxxx.xxxxxx.us-east-1.rds.amazonaws.com 3306- 本地防火墙/杀毒软件拦截了3306端口的出站流量
- 公司网络的出站规则限制了MySQL默认端口
- 你的ISP屏蔽了3306端口(可以尝试把Aurora实例的端口改成非默认值,比如3307,再重新测试)
2. 检查Aurora实例的核心配置
- 实例状态:确认AWS控制台里的Aurora实例处于**可用(Available)**状态,创建中、重启中的实例无法正常响应连接请求
- 参数组设置:
- 检查参数
skip-networking是否为OFF(如果设为ON会直接禁用TCP/IP连接) - 确认
bind-address是0.0.0.0(允许所有IP发起连接)
- 检查参数
- 公有访问开关:再次确认实例的“Publicly accessible”选项确实设为了
Yes,有时候保存配置可能会出现延迟或未生效的情况,建议重新检查一遍
3. 验证数据库账号的访问权限
确保你用来连接的账号允许从任意IP访问:
- 如果能通过其他方式(比如AWS CloudShell连接同VPC内的EC2实例,再通过EC2连接Aurora)登录数据库,执行以下命令查看账号权限:
如果SELECT user, host FROM mysql.user WHERE user='你的连接用户名';host列不是%,说明账号被限制了特定IP,需要修改权限:GRANT ALL PRIVILEGES ON 你的目标数据库名.* TO '你的连接用户名'@'%'; FLUSH PRIVILEGES;
4. 检查VPC与网络ACL的配置
- 路由表:Aurora实例所在的子网必须关联了带有Internet Gateway(IGW)的路由表,否则即使开了公开访问,公网流量也无法到达实例
- 网络ACL(NACL):NACL是无状态规则,需要同时配置入站和出站规则:
- 入站规则允许3306端口的TCP流量(来源设为
0.0.0.0/0) - 出站规则允许所有TCP响应流量(或者至少允许3306端口的出站流量)
- 入站规则允许3306端口的TCP流量(来源设为
5. 排除SCT工具本身的问题
试试用其他MySQL客户端连接,比如命令行工具:
mysql -h xxxxxxxxxxxxxxx.xxxxxx.us-east-1.rds.amazonaws.com -P 3306 -u 你的连接用户名 -p
如果其他工具能成功连接,那问题可能出在SCT上:
- 确保SCT是最新版本,旧版本可能存在JDBC驱动兼容问题
- 在SCT的JDBC URL里添加必要参数,比如
useSSL=false&serverTimezone=UTC,完整URL示例:jdbc:mysql://xxxxxxxxxxxxxxx.xxxxxx.us-east-1.rds.amazonaws.com:3306/你的目标数据库名?useSSL=false&serverTimezone=UTC
你提供的错误日志:
2018-05-17 15:59:29.655 [ 87] GENERAL INFO Test connecting to Amazon Aurora (MySQL compatible) database started... 2018-05-17 16:00:11.679 [ 87] LOADER ERROR Connection to 'jdbc:mysql://xxxxxxxxxxxxxxx.xxxxxx.us-east-1.rds.amazonaws.com:3306' wasn't established. ERROR: code: 0; message: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 2018-05-17 16:00:11.679 [ 87] GENERAL INFO Test connecting to Amazon Aurora (MySQL compatible) database finished in 0:00:42.023 sec with memory consumption of 644.93 MB (625.5 MB .. 644.93 MB). 2018-05-17 16:00:11.679 [ 87] GENERAL INFO Test connecting to Amazon Aurora (MySQL compatible) database statistics: GENERAL: 0:00:42.023 sec 2018-05-17 16:00:11.680 [ 18] GENERAL ERROR com.amazon.sct.dbloader.DbLoaderHandledException: Connection wasn't established. Check connection properties. java.util.concurrent.ExecutionException: com.amazon.sct.dbloader.DbLoaderHandledException: Connection wasn't established. Check connection properties. at java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:192) at com.amazon.sct.task.launcher.CommonTaskLauncher.lambda$run$0(CommonTaskLauncher.java:30) at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:361) at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81) at javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:105) at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:112) at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:146) at javafx.concurrent.Task.setState(Task.java:696) at javafx.concurrent.Task$TaskCallable.lambda$call$501(Task.java:1453) at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.win.WinApplication._enterNestedEventLoopImpl(Native Method) at com.sun.glass.ui.win.WinApplication._enterNestedEventLoop(WinApplication.java:218) at com.sun.glass.ui.Application.enterNestedEventLoop(Application.java:511) at com.sun.glass.ui.EventLoop.enter(EventLoop.java:107) at com.sun.javafx.tk.quantum.QuantumToolkit.enterNestedEventLoop(QuantumToolkit.java:583) at javafx.stage.Stage.showAndWait(Stage.java:474) at javafx.scene.control.HeavyweightDialog.showAndWait(HeavyweightDialog.java:162) at javafx.scene.control.Dialog.showAndWait(Dialog.java:341) at com.amazon.sct.handler.CreateConnectionHandler.createConnection(CreateConnectionHandler.java:37) at com.amazon.sct.viewmodel.AppViewModel.createConnection(AppViewModel.java:1198) at com.amazon.sct.viewmodel.AppViewModel.createTargetConnection(AppViewModel.java:769) at com.amazon.sct.view.AppView.loadTarget(AppView.java:283) at com.amazon.sct.view.AppView.lambda$initConnectionMenusBindings$22(AppView.java:821) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at javafx.event.Event.fireEvent(Event.java:198) at javafx.scene.Scene$MouseHandler.process(Scene.java:3757) at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485) at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762) at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494) at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:352) at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEve
内容的提问来源于stack exchange,提问作者Yamil
相关产品推荐
相关产品推荐

