You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin应用Wi-Fi可连Amazon RDS MySQL,移动数据连接超时问题

问题分析与解决方案

核心排查方向

  • RDS安全组IP白名单限制
    Amazon RDS的安全组默认仅允许指定IP访问。你的Wi-Fi公网IP大概率已加入安全组入站规则,但移动数据的公网IP不在允许范围内。
    操作:进入AWS控制台查看RDS实例的安全组配置,检查入站规则是否包含移动数据的公网IP段;可临时开放0.0.0.0/0(仅测试用,生产环境禁止)验证是否能连接。

  • 移动运营商端口封锁
    部分移动运营商会封禁MySQL默认的3306端口,导致移动数据下无法建立连接。
    操作:将RDS的MySQL端口修改为非默认值(如3307),更新连接字符串中的Port参数后测试;或用移动数据环境下的telnet工具测试telnet [RDS地址] 3306,确认端口是否连通。

  • 连接超时设置不足
    移动数据网络稳定性弱于Wi-Fi,默认连接超时时间可能不足以完成握手。
    操作:在连接字符串中添加Connection Timeout=60(或更长时间),延长超时阈值后重试。

  • 移动数据DNS解析失败
    移动数据网络的DNS服务器可能无法正确解析RDS域名,导致无法定位主机。
    操作:在手机移动数据环境下ping RDS域名,查看是否解析到正确IP;或直接在连接字符串中替换为RDS公网IP测试。

  • 应用网络权限限制
    部分平台(如Android)需明确配置应用允许使用移动数据的权限。
    操作:检查AndroidManifest.xml是否添加<uses-permission android:name="android.permission.INTERNET" />,并确认应用系统设置中未限制仅Wi-Fi联网。


错误信息

MySqlConnector.MySqlException (0x80004005): Connect Timeout expired. ---> MySqlConnector.MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts.
  at MySqlConnector.Core.ServerSession.ConnectAsync (MySqlConnector.Core.ConnectionSettings cs, MySqlConnector.MySqlConnection connection, System.Int32 startTickCount, MySqlConnector.Core.ILoadBalancer loadBalancer, MySqlConnector.Protocol.Serialization.IOBehavior ioBehavior, System.Threading.CancellationToken cancellationToken) [0x002fb] in /_/src/MySqlConnector/Core/ServerSession.cs:437 
  at MySqlConnector.Core.ConnectionPool.ConnectSessionAsync (MySqlConnector.MySqlConnection connection, System.String logMessage, System.Int32 startTickCount, MySqlConnector.Protocol.Serialization.IOBehavior ioBehavior, System.Threading.CancellationToken cancellationToken) [0x000bc] in /_/src/MySqlConnector/Core/ConnectionPool.cs:367 
  at MySqlConnector.Core.ConnectionPool.GetSessionAsync (MySqlConnector.MySqlConnection connection, System.Int32 startTickCount, MySqlConnector.Protocol.Serialization.IOBehavior ioBehavior, System.Threading.CancellationToken cancellationToken) [0x00519] in /_/src/MySqlConnector/Core/ConnectionPool.cs:94 
  at MySqlConnector.Core.ConnectionPool.GetSessionAsync (MySqlConnector.MySqlConnection connection, System.Int32 startTickCount, MySqlConnector.Protocol.Serialization.IOBehavior ioBehavior, System.Threading.CancellationToken cancellationToken) [0x00767] in /_/src/MySqlConnector/Core/ConnectionPool.cs:124 
  at System.Threading.Tasks.ValueTask`1[TResult].get_Result () [0x0001b] in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/external/corefx/src/Common/src/CoreLib/System/Threading/Tasks/ValueTask.cs:813 
  at MySqlConnector.MySqlConnection.CreateSessionAsync (MySqlConnector.Core.ConnectionPool pool, System.Int32 startTickCount, System.Nullable`1[T] ioBehavior, System.Threading.CancellationToken cancellationToken) [0x00120] in /_/src/MySqlConnector/MySqlConnection.cs:919 
  at MySqlConnector.MySqlConnection.CreateSessionAsync (MySqlConnector.Core.ConnectionPool pool, System.Int32 startTickCount, System.Nullable`1[T] ioBehavior, System.Threading.CancellationToken cancellationToken) [0x002f6] in /_/src/MySqlConnector/MySqlConnection.cs:941 
  at System.Threading.Tasks.ValueTask`1[TResult].get_Result () [0x0001b] in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/external/corefx/src/Common/src/CoreLib/System/Threading/Tasks/ValueTask.cs:813 
  at MySqlConnector.MySqlConnection.OpenAsync (System.Nullable`1[T] ioBehavior, System.Threading.CancellationToken cancellationToken) [0x001c7] in /_/src/MySqlConnector/MySqlConnection.cs:425 
  at MySqlConnector.MySqlConnection.Open () [0x00000] in /_/src/MySqlConnector/MySqlConnection.cs:373 

连接字符串

"Server=xxx;Port=3306;Database=xxx;Uid=xxx;Password=xxx.;Convert Zero Datetime=True;"

内容的提问来源于stack exchange,提问作者Spack09

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 04:25:36