0

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

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

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

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

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

连接字符串采用以下格式(sqlData 结构包含登录数据):

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

我在stackoverflow上找到了几个关于这个错误的主题,但没有解决......

有没有人有类似的问题?它的原因是什么,或者我怎样才能让它不发生?

感谢您提供任何帮助的建议。

4

1 回答 1

-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)
于 2015-01-13T14:12:12.107 回答