C#MySQL - 远程连接

时间:2014-07-21 12:12:58

标签: c# mysql .net remote-connection

我正在创建一个使用MySQL数据库存储数据的C#(.NET 4.0)应用程序。此数据库安装在第三方公司的服务器上,应用程序必须远程连接 - 目前通过域名(myname.home.pl)连接。

此外,还有一个网站也使用相同的数据库,该网站位于同一台服务器上,因此它通过localhost连接到数据库。

网站始终正常运行,连接没有问题。

C#应用程序通常也成功连接但有时它无法打开连接,并且在连接超时后它会返回错误:"无法连接到任何指定的MySQL主机"。我不知道这种错误的原因是什么。

在Windows XP和Windows 7上出现此问题,未测试其他操作系统版本。

Connection String采用以下格式(sqlData struct包含登录数据):

connection.ConnectionString = String.Format(
    "server={0};database={1};user='{2}';password='{3}';",
    sqlData.Server,
    sqlData.Catalog,
    sqlData.User,
    sqlData.Password
);

我在stackoverflow上发现了几个关于此错误的主题,但未解决...

有没有人有类似的问题?可能是什么原因或如何使其不发生?

感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:-2)

MySql.Data.MySqlClient.MySqlException(0x80004005):无法连接到任何指定的MySQL主机。

   em MySql.Data.MySqlClient.NativeDriver.Open()

   em MySql.Data.MySqlClient.Driver.Open()

   em MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)

   em MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()

   em MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()

   em MySql.Data.MySqlClient.MySqlPool.GetConnection()

   em MySql.Data.MySqlClient.MySqlConnection.Open()

   em EasylockControl.Login.button1_Click(Object sender, EventArgs e)

   em System.Windows.Forms.Control.OnClick(EventArgs e)

   em System.Windows.Forms.Button.OnClick(EventArgs e)

   em System.Windows.Forms.Button.PerformClick()

   em System.Windows.Forms.Form.ProcessDialogKey(Keys keyData)

   em System.Windows.Forms.Control.ProcessDialogKey(Keys keyData)

   em System.Windows.Forms.Control.PreProcessMessage(Message& msg)

   em System.Windows.Forms.Control.PreProcessControlMessageInternal(Control target, Message& msg)

   em System.Windows.Forms.Application.ThreadContext.PreTranslateMessage(MSG& msg)