我的连接字符串如下。
conn.ConnectionString = "Server=192.248.***.***; Port=3036; User id=admin; password=***; Database=abc; Connect Timeout=60;"
但它返回错误“连接到数据库时出错:无法连接到任何指定的MySQL主机。”
但我可以使用PHPMyAdmin登录。
//192.248.***.***/phpmyadmin
我也可以使用以下方式登录本地MySQL数据库:
conn.ConnectionString = "server=" & "localhost" & ";" & "user id=" & "admin" & ";" & "password=" & "" & ";" & "database=abc"
此代码有什么问题。我想连接到远程数据库,因为它是系统的要求。请帮忙。
更新 在即时窗口中显示:
PassbookPrinter.vshost.exe Error: 0 : Unable to connect to any of the specified MySQL hosts.
A first chance exception of type 'MySql.Data.MySqlClient.MySqlException' occurred in MySql.Data.dll
答案 0 :(得分:3)
将vb.net连接到远程MySql数据库;无论您使用什么VB.Net版本,只需执行以下步骤。
1)从网址(https://dev.mysql.com/downloads/connector/net/)
下载Mysql Connector / Net2)安装连接器;默认情况下,连接器将安装在我已安装的版本的路径(C:\ Program Files \ MySQL \ Connector Net 6.9.6)中。
3)打开VB.Net IDE并启动新项目。
4)添加" Mysql.Data.dll"作为对项目的引用,您可以在路径中找到它(C:\ Program Files \ MySQL \ Connector Net 6.9.6 \ Assemblies \ v4.5);
5)准备好连接表格,如图所示;
6)创建名为" Database"的类。并写下以下代码。
导入MySql.Data.MySqlClient
公共类数据库
Private _connection As New MySqlConnection
Private _errormessge As String
Private _servername As String
Private _databasename As String
Private _userid As String
Private _password As String
Public WriteOnly Property ServerName() As String
Set(ByVal value As String)
_servername = value
End Set
End Property
Public WriteOnly Property DatabaseName() As String
Set(ByVal value As String)
_databasename = value
End Set
End Property
Public WriteOnly Property UserID() As String
Set(ByVal value As String)
_userid = value
End Set
End Property
Public WriteOnly Property Password() As String
Set(ByVal value As String)
_password = value
End Set
End Property
Public ReadOnly Property ErrorMessage() As String
Get
Return _errormessge
End Get
End Property
Public Function Connection() As Boolean
Try
_connection.ConnectionString = "Server=" & _servername & ";Port=3306;Database=" & _databasename & ";User ID=" & _userid & ";Password=" & _password & ""
_connection.Open()
If _connection.State = ConnectionState.Open Then
_connection.Close()
Return True
End If
Catch ex As Exception
_errormessge = ex.Message
Return False
End Try
End Function
结束班
Public Class Frm_Main Private Sub btn_connect_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)处理btn_connect.Click
'对象声明和实例化
将数据视为新数据库
With data
'Assing the object property values
.ServerName = txt_server.Text
.DatabaseName = txt_database.Text
.UserID = txt_uid.Text
.Password = txt_pwd.Text
'Connection testing
If .Connection Then
MessageBox.Show("Database Conneted.")
Else
MessageBox.Show(.ErrorMessage)
End If
End With
End Sub
Private Sub btn_exit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_exit.Click
Close()
End Sub
结束班
7)运行项目并尝试连接;如果连接成功那么你的运气;如果连接不成功,出现以下错误消息,请不要只是继续阅读;
8)注意@之后的错误消息的ip地址(这就是你的ip)并将其添加到你的域cpanel"远程mysql访问"下面的图片说明了远程mysql访问的样子(它们可能与颜色相同);不要忘记按"添加主机"按钮。对于静态IP的用户,此设置可以每天使用。
在上述步骤之后看到成功的信息;
但是如果错误消息仍然存在,请尝试将密码文本留空并在远程数据库中没有密码时再次连接;如果错误再次出现,除了YES改为NO,那么你必须检查你是否在DHCP中;
9)如果你在DHCP中这意味着ip正在每个新的互联网连接中发生变化。如果你使用调制解调器可能是你的DHCP。如果您在动态ips中然后检查ip的4个块中的变化。如果第一个ip在第一个连接中是197.250.3.201而下一个ip是197.250.60.70而下一个ip是197.250.80.24;您必须在cpanel访问主机中添加197.250。%才能使您的连接保持稳定。
10)注意:百分比符号(通配符)流向ip地址的左侧,安全门打开的越多。如有新的错误,请与您的域名提供商联系,域中可能存在其他一些安全问题。谢谢!
答案 1 :(得分:1)
试试这个,它会起作用
con.ConnectionString ="Persist Security Info=False;datasource=site.com;port=3306;username=username;password=password;database=database name"
您必须添加
你的代码中的坚持安全
。访问您的站点服务器的mysql数据库。去cpanel>远程MySQL,并添加您的IP地址
查看此图片>>> https://www.dropbox.com/s/ytsz57spanwdpkz/cpanel.PNG
现在享受:p
答案 2 :(得分:0)
MySQL的默认端口是3306.如果你可以使用默认设置从phpmyadmin连接它听起来像一个错字,你应该有:
conn.ConnectionString = "Server=192.248.***.***; Port=3306; User id=admin; password=***; Database=abc; Connect Timeout=60;"
默认情况下,禁用远程访问MySQL服务器。例如,如果您在Debian Linux发行版上运行MySQL,则可能需要采取以下其他步骤以允许从另一台计算机进行访问:
http://www.debianhelp.co.uk/remotemysql.htm
对于Windows主机,以下内容可能非常有用:
http://techminded.net/blog/allow-remote-connections-for-mysql-on-windows.html
答案 3 :(得分:0)
以前我遇到过同样的问题,我和在不同的服务器上运行的情况一样。
尝试ping运行应用程序的服务器,看看是否可以连接。这就是我发现并需要改变防火墙的方法。
答案 4 :(得分:-1)
尝试在mysql的.ini配置上将端口更改为3307 然后在mysql的.ini配置上绑定地址=服务器的ip或主机名