如何处理“无法连接到任何指定的MySQL主机。”

时间:2015-09-12 09:11:52

标签: mysql vb.net connection timeout mysql-connector

我正在使用VB.NET和MySQL,我正在测试我的应用程序是否可以处理错误的数据库连接。

一个特殊情况是当我输入错误的数据库IP地址时,例如而不是192.168.1.100我将输入错误的192.168.1.101

出于这个原因,我尝试使用try, catch我的try catch能够捕获到那种错误,但不幸的是我的计算机暂停了几分钟。

这是我正在使用的代码

Public Sub Update_DB_Con()
    Check_DB_Con()
        Try
            MysqlConn.Open()
            frmStatus.Database_Status = "Connected"
            MysqlConn.Close()
            MysqlConn.Dispose()
        Catch myerror As MySqlException
            frmStatus.Database_Status = "Disconnected"
            Console.WriteLine(myerror)
            Console.Write("IAM CATCH")
        End Try        
End Sub

所以我的问题是,如何正确处理MySQL的超时请求?

1 个答案:

答案 0 :(得分:1)

在尝试解决此问题时,您面临着TCP / IP的设计。您实际指定的主机没有服务器在MySQL端口上运行(通常是3306),因此不会响应程序的连接请求。它既不接受也不拒绝这种联系。由于TCP的全球影响力,它希望为服务器提供足够的时间来响应Connect。这就是为什么它不会在几毫秒内超时。

Connector / NET内置了对服务器池的支持,因此它会在超时后自动重试。

尝试将ConnectionTimeout = 5添加到连接字符串中。默认值为15.但要注意在生产中执行此操作;在使用大型繁忙系统实现弹性的长期经验之后,选择了默认值。