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

Unity C#脚本无法连接Railway托管的远程MySQL数据库

Unity C#连接Railway MySQL数据库的解决方案

1. 换用更适配的MySQL驱动

旧版Oracle官方的MySql.Data驱动对SRV域名解析支持有缺陷,建议换成开源的MySqlConnector驱动——它对现代云数据库的SRV记录支持更完善。你可以通过NuGet安装,或者下载对应版本的.dll文件放到Unity项目的Plugins目录里。

2. 正确配置连接字符串

推荐:用SRV自动解析

Railway的MySQL默认用SRV记录映射真实节点,连接字符串必须加上dns-srv=true参数,不同驱动写法略有区别:

  • 用MySqlConnector时:
string connStr = "server=containers-us-west-110.railway.app;user id=你的数据库用户名;password=你的数据库密码;database=你的数据库名;dns-srv=true;";
  • 坚持用MySql.Data的话,得确保驱动版本在8.0.28以上,还要显式加上端口(哪怕SRV会自动解析,旧驱动可能需要这个触发):
string connStr = "server=containers-us-west-110.railway.app;user id=你的数据库用户名;password=你的数据库密码;database=你的数据库名;port=3306;dns-srv=true;";

备选:手动解析SRV记录

如果自动解析还是失败,先手动用命令行解析真实的主机和端口:

nslookup -type=SRV _mysql._tcp.containers-us-west-110.railway.app

把得到的真实主机地址和端口直接写到连接字符串里:

string connStr = "server=解析后的真实主机;port=解析后的真实端口;user id=你的数据库用户名;password=你的数据库密码;database=你的数据库名;";

3. 检查Unity网络权限

打开Unity的Project Settings > Player > Other Settings,把Internet Access设为Require或者Auto;如果是移动端,还要确认权限列表里加了网络访问权限(比如Android的android.permission.INTERNET)。

4. 调试小技巧

  • 先加一段代码测试DNS解析,确认Unity能找到目标主机:
using System.Net;
using System.Linq;

// 在连接数据库前执行
IPHostEntry hostInfo = Dns.GetHostEntry("containers-us-west-110.railway.app");
Debug.Log("解析到的IP地址:" + string.Join(", ", hostInfo.AddressList.Select(ip => ip.ToString())));
  • 捕获异常时不要只打错误消息,把StackTrace和InnerException也输出来,能帮你找到更具体的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 16:22:19