如何处理"Unable to connect to any of the specified MySQL hosts."



我使用的是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的超时请求?

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

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

尝试在连接字符串中添加ConnectionTimeout=5。默认值是15。但是在生产中要小心这样做;默认值是在长期使用大型繁忙系统以获得弹性之后选择的。

相关内容

  • 没有找到相关文章

最新更新