我正在创建一个使用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上发现了几个关于此错误的主题,但未解决...
有没有人有类似的问题?可能是什么原因或如何使其不发生?
感谢您提供任何帮助。
答案 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)