【问题标题】:Vb Connecting to an online mysql server databasevb 连接到在线 mysql 服务器数据库
【发布时间】:2013-09-09 20:05:26
【问题描述】:

我正在使用 Visual Basic 2010 制作一个小型桌面应用程序,我需要建立一个与在线 mysql 服务器数据库的连接,该数据库已在我制作的网站的主机上创建。

目前我只是想让连接成功,所以我编写了以下代码来尝试这样做,但是在调试时我不断收到错误消息:

Imports MySql.Data.MySqlClient

Public Class Form2

Dim serverstring As String = "Server=188.121.42.33;Database=MyDatabase;User Id=MyUser;Password=password"


Private Sub Form2_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    Dim sqlConnection As MySqlConnection = New MySqlConnection
    sqlConnection.ConnectionString = serverstring

    Try
        If sqlConnection.State = ConnectionState.Closed Then
            sqlConnection.Open()
            MsgBox("Sucessfull")
        Else
            sqlConnection.Close()
            MsgBox("Connection failed")
        End If
    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try
End Sub

End Class

如果有人能给我任何建议或发现我做错了什么,我将非常感激,因为我对这一切都很陌生,这是我提出的第一个应用程序。我调试时得到的错误是:

Mysql.data.MySqlClient.MySqlException (0x80004005):无法连接到任何指定的 MySQL 主机。

再次感谢您的宝贵时间。

【问题讨论】:

  • 首先猜测是防火墙。
  • 感谢您的建议,我已关闭防火墙,但仍然遇到同样的错误。
  • 问题已经解决了 :) 谢谢。

标签: mysql database vb.net connection


【解决方案1】:

“我已经关闭了防火墙,但仍然遇到同样的错误。”您和目的地之间的过滤比您的个人防火墙要多得多,您无法直接禁用/更改任何防火墙。

如果您的示例中的服务器 IP 是您尝试连接的,那么它很可能是过滤/防火墙问题,正如 cHao 所提到的。 SQL Server 的默认连接端口是 tcp/1433,基于对188.121.42.33 的快速端口扫描,该主机不接受 tcp/1433 上的连接:

> nc -vv 188.121.42.33 1433
nc: connect to 188.121.42.33 port 1433 (tcp) failed: Connection timed out

...和...

> nmap -O 188.121.42.33
Starting Nmap 6.25 ( http://nmap.org ) at 2013-09-05 22:01 ric
Nmap scan report for n1nlsmysqladm01.shr.prod.ams1.secureserver.net (188.121.42.33)
Host is up (0.068s latency).
Not shown: 983 filtered ports
PORT     STATE  SERVICE
80/tcp   closed http
113/tcp  closed ident
443/tcp  closed https
1248/tcp open   hermes
1720/tcp open   H.323/Q.931
6000/tcp closed X11
6001/tcp closed X11:1
6002/tcp closed X11:2
6003/tcp closed X11:3
6004/tcp closed X11:4
6005/tcp closed X11:5
6006/tcp closed X11:6
6007/tcp closed X11:7
6009/tcp closed X11:9
6025/tcp closed x11
6059/tcp closed X11:59
7001/tcp closed afs3-callback

简短的回答,您将无法根据源/目标之间当前允许的流量进行连接。要使其正常工作,您可能需要与该主机建立某种 VPN 连接,tcp/1433 流量可以通过该连接流动。

【讨论】:

  • MySQL 默认使用 3306 端口。哪个似乎仍然不在开放端口列表中,所以大部分答案仍然无效。
  • 非常感谢您的帮助,问题已经解决,我发现是mysql服务器数据库设置为不允许直接访问:)
  • @cHao 是的,我的错,我肯定只是假设 SQL Server 基于 VB 代码。
【解决方案2】:

这通常是因为主机端不允许所有IP连接到mysql。尝试在托管端添加 %。如果它不起作用,您需要转到 mysql 并运行此脚本

全部启用。 to user@'%' IDENTIFIED BY 'password';

上面的脚本将允许所有 ip 地址访问 mysql,如果它仍然无法工作,这意味着主机提供商防火墙是严格的,我的建议是你需要 VPS。

祝你好运

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-12
    • 2020-10-24
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-13
    相关资源
    最近更新 更多