首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure C#应用程序到远程MySQL服务器的随机连接问题

问Azure C#应用程序到远程MySQL服务器的随机连接问题
EN

Stack Overflow用户
提问于 2016-06-19 11:04:41
回答 1查看 435关注 0票数 0

我有一个ASP.NET MVC web应用程序,可以连接到远程MySQL服务器(Ubuntu)。在我自己的Windows Server或localhost上,我从来没有遇到过任何问题,但是当我最近将应用程序移到Azure应用程序服务时,我会发现随机连接错误(有时起作用,有时不起作用):

代码语言:javascript
复制
Unable to connect to any of the specified MySQL hosts.
at MySql.Data.MySqlClient.NativeDriver.Open() 
at MySql.Data.MySqlClient.Driver.Open() 
at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuildersettings)
at MySql.Data.MySqlClient.MySqlConnection.Open()

没有任何内在的例外。我的代码看起来有点像:

代码语言:javascript
复制
using(var con = new MySqlConnection(connectionString))
{
  con.Open();
  using(var cmd = CreateCommand(sql, con))
  {
    cmd.Execute();        
  }
  con.Close();
}

连接字符串看起来如下:

server=x.x.x.x;uid=xxx;pwd=xxx;database=xxx;Connection Timeout=10;Pooling=false;Protocol=socket;Port=3306;

本主题描述了相同的问题:

这与Ubuntu服务器上的防火墙无关,当连接失败时,我甚至看不到防火墙中的传入请求。我还尝试使用连接字符串中的其他设置。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2016-06-19 13:37:50

protocol=socket告诉您的点网实例尝试用UNIX域套接字连接到本地MySQL服务器。但很明显,您正在尝试使用TCP/IP连接到远程服务器。从连接字符串中省略protocol=socket可能会有所帮助。

您的Ubuntu服务器有主机名吗?如果是的话,使用它来代替IP地址。从Azure到您的Ubuntu服务器的IP路由是稳定的,还是上下移动?如果您从Azure主机上ping Ubuntu服务器,会发生什么情况?

注意:考虑在此连接中使用tls (ssl)。没有tls的MySQL协议不太安全。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37906526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档