Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将.NET应用程序连接到MySQL_Mysql_.net_Database_Vb.net_Phpmyadmin - Fatal编程技术网

将.NET应用程序连接到MySQL

将.NET应用程序连接到MySQL,mysql,.net,database,vb.net,phpmyadmin,Mysql,.net,Database,Vb.net,Phpmyadmin,以前有人问过这个问题,但他们的回答对我没有帮助 我不是一名web开发人员,以前也没有使用过MySQL。我需要在线数据库只是为了一个简单的任务,这并不重要,现在。因此,我想将我的VB.NET应用程序连接到mySQL 我使用免费托管,这使我能够创建一个MySQL数据库,这对我来说是足够的。他们为我提供了cPanel,我在这里创建了名为“db\u clients”的mySql数据库。在那之后,我创建了两个用户,一个为我的客户机“db_client”,一个为我(所有者)“db_owner” db_客户端

以前有人问过这个问题,但他们的回答对我没有帮助

我不是一名web开发人员,以前也没有使用过MySQL。我需要在线数据库只是为了一个简单的任务,这并不重要,现在。因此,我想将我的VB.NET应用程序连接到mySQL

我使用免费托管,这使我能够创建一个MySQL数据库,这对我来说是足够的。他们为我提供了cPanel,我在这里创建了名为“db\u clients”的mySql数据库。在那之后,我创建了两个用户,一个为我的客户机“db_client”,一个为我(所有者)“db_owner”

db_客户端只有“选择”的权限
db_owner有权对数据库执行所有操作

基本上,我提供给客户的应用程序只需查询在线数据库并检查一列是否包含true或false。因此,从客户端应用程序中,我想用
Uid=db_client
连接到mySQL数据库

我已经下载并导入了.NET的MySQL连接器。我现在遇到的麻烦是远程连接到实际的数据库。即使使用“localhost”,我也无法访问数据库。 我正在使用phpMyAdmin(工具)自定义数据库。您能告诉我,我应该如何、在哪里以及在什么地方搜索以在连接字符串中找到参数
Server
的正确值吗

我已经找到的是:在phpMyAdmin站点上,我进入主页->选择选项卡“变量”->在搜索栏中键入“主机名”,它返回f5.host-ed.me。 在那之后,我打开CMD并ping了那个主机,得到了一个IP。接下来我该怎么办

这是我当前的VB.NET代码:

Imports MySql.Data.MySqlClient

 Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim conn As New MySqlConnection
    Dim myConString As String

    myConString = "Server=46.105.118.169; Port=3306; Database=db_clients; Uid=db_client; Pwd=somepass; Charset=latin1;"

    Try
        conn.ConnectionString = myConString
        conn.Open()

        Debug.Print("conn successfully opened")

        conn.Close()
    Catch ex As MySqlException
        Select Case ex.Number
            Case 0
                MessageBox.Show("cannot connect to server. Contact admin!")
            Case 1045
                MessageBox.Show("Invalid username/password!")
        End Select
        MessageBox.Show(ex.Message)
    End Try
End Sub
End Class
这是我按下按钮时得到的结果:

错误:1042 SQLSTATE:08S01(ER\U错误\U主机错误)

消息:无法获取您地址的主机名

我是否需要授予访问特定IP的权限才能访问我的数据库?
如果答案是肯定的,那么有办法解决吗?我不想手动将IP添加到白名单。

您是否正在尝试从本地pc连接到远程数据库?这在大多数托管计划中是不允许的。通常,要访问远程数据库,您必须在服务器端编写一个应用程序来管理实际的数据库访问,并将请求(例如发送到REST-API)发送到中间件,然后中间件与您的数据库通信。在服务器端,您的数据库可以直接从本地主机访问,如主机手册所述。

您正在尝试从本地pc连接到远程数据库吗?这在大多数托管计划中是不允许的。通常,要访问远程数据库,您必须在服务器端编写一个应用程序来管理实际的数据库访问,并将请求(例如发送到REST-API)发送到中间件,然后中间件与您的数据库通信。在服务器端,您的数据库可以直接从本地主机访问,如主机手册中所述。

您可能需要将您试图连接的IP地址列为白名单。您可能需要将您试图连接的IP地址列为白名单。我正试图通过我的应用程序将我的数据库公开给世界各地的客户。是的,我明白,但你使用的是免费的招待计划。由于安全原因,大多数主机不允许公众访问MySQL数据库。如果您希望数据库是公共的,您必须编写一个中间件来访问它。好的,我现在将寻找允许远程访问的主机。我正试图通过我的应用程序向世界各地的客户公开我的数据库。是的,我理解这一点,但您使用的是免费的主机计划。由于安全原因,大多数主机不允许公众访问MySQL数据库。如果您希望数据库是公共的,您必须编写一个中间件来访问它。