VB.net窗体程序连接Hostinger远程MySQL报错网络路径未找到
核心错误
你代码中引用的System.Data.SqlClient是微软SQL Server的专用数据驱动,仅支持连接SQL Server服务,不兼容MySQL。你提到PHP、MySQL Workbench可以正常连接,已经证明目标数据库是MySQL实例,用SQL Server驱动发起连接时通信协议完全不匹配,会直接触发网络路径不存在的报错,和你填的服务器地址、账号密码正确性无关。
修复步骤
- 移除代码里对
System.Data.SqlClient的引用,右键项目打开NuGet包管理器,搜索安装官方MySQL驱动MySql.Data。 - 替换所有数据库操作对象为MySQL驱动对应的类型,连接字符串补充端口、SSL必填参数——Hostinger远程MySQL默认端口为3306,且强制要求SSL连接,缺失配置会被防火墙拦截。
- 提前确认Hostinger后台的远程数据库访问白名单已添加你当前运行程序的设备公网IP,未加白名单的IP会被直接拒绝连接。
修复后可直接运行的代码
' 替换原有的SqlClient引用 Imports MySql.Data.MySqlClient Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim myConn As MySqlConnection Dim myCmd As MySqlCommand Dim myReader As MySqlDataReader Dim results As String ' 连接字符串补全port、SslMode参数,使用MySqlConnection初始化 myConn = New MySqlConnection("server=sql588.main-hosting.eu;port=3306;uid=u942496093_User1;database=u942496093_Test1;password=abcDEF123!;SslMode=Required") ' 若使用IP连接,保持参数结构一致即可: ' myConn = New MySqlConnection("server=145.14.151.51;port=3306;uid=u942496093_User1;database=u942496093_Test1;password=abcDEF123!;SslMode=Required") myCmd = myConn.CreateCommand myCmd.CommandText = "SELECT Vorname, Nachname FROM TestTabelle1" myConn.Open() myReader = myCmd.ExecuteReader Do While myReader.Read() results = results & myReader.GetString(0) & vbTab & myReader.GetString(1) & vbLf Loop MsgBox(results) myReader.Close() myConn.Close() End Sub End Class
排错提示
如果改完配置仍无法连接,先在本地命令行执行telnet sql588.main-hosting.eu 3306,端口能通说明网络层无拦截,再逐一核对数据库账号权限、白名单、密码正确性即可。
内容的提问来源于stack exchange,提问作者Ruediger
相关产品推荐
相关产品推荐

