mysql - 如何从另一台PC在线连接到MySQL数据库?网络

标签 mysql vb.net networking visual-studio-2013 mysql-workbench

这是我的连接字符串

mySqlCon.ConnectionString = "server=testserver.noip.me; port=3306; database=testserver1; uid=admin; pwd=admin"

我创建了一个带有 TryCatch 函数的 vb.net 应用程序来检查 MySql 连接。

我的服务器 testserver.noip.me 是我的public ip 的主机名(主机名是一个例子,如果你在线检查端口,它不会工作)。如果我将服务器更改为 localhost/127.0.0.1 或我的 private ip 地址(类似于 192.168.0.xx),结果是连接就好了。甚至可以在同一 wifi 网络内的另一台 PC 上连接到数据库。

每当我将其更改为我的公共(public) IP 地址或我的主机名时,应用程序都会返回一条错误消息:

"Unable to connect to any of the specified MySQL hosts."

这是代码

Try
        mySqlCon.Open()

        If mySqlCon.State = ConnectionState.Open Then
            Label5.Text = "Online"
            Label5.ForeColor = Color.GreenYellow
            LoginBtn.Enabled = True
        Else
            Label5.Text = "Offline"
            Label5.ForeColor = Color.LightPink
            LoginBtn.BackColor = Color.Red
        End If

        mySqlCon.Close()
    Catch ex As MySqlException
        If mySqlCon.State = ConnectionState.Open Then
            mySqlCon.Close()
        End If
Finally
        mySqlCon.Dispose()
    End Try

我也在我的路由器上做了端口转发,结果很好: enter image description here

主机名端口 3306 检查也已打开: enter image description here

额外信息:我已经安装了 connectornet 并为此使用了 MySQL workbench。 enter image description here

在本地网络上一切正常,但在网上却不行。知道我应该怎么做才能使应用程序从另一个在线网络成功连接到数据库吗?请不要使用 SSH 或任何安全连接指南,因为这只是一个测试服务器。

最佳答案

在您的 MYSQL(源机器)中,您必须为目标域名启用访问权限。 在主机表中添加您的目标 IP。

关于mysql - 如何从另一台PC在线连接到MySQL数据库?网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31739561/

相关文章:

java - 如果它们通过 java 包装在缓冲区中,我是否必须显式关闭所有流?

mysql - 在更新时使用 UNIX_TIMESTAMP 而不是时间戳

java - 通过 vb.net 将焦点设置为 webbrowser 内的 java-inputdialog

linux - 无法使用 etcd 设置多主机 Docker 覆盖网络

linux - Ping 命令输出中的管道

vb.net - 重载DataGridViewCellStyle并给出默认值

mysql - 与具有 EXIST 要求的 INNER JOIN 相反

mysql - 我的一个查询现在在正常工作 10 年后只返回一条记录 - 我没有更改任何代码

mysql - 从 MYSQL 存储过程返回多个结果集

vb.net - 使用 vb.net,如何使用没有命名空间的类?