2012-12-10 106 views
2

我的連接字符串如下。使用VB.NET連接到遠程MySQL數據庫2010

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" 

什麼是錯的這個代碼。我想連接到遠程數據庫,因爲它是系統的要求。請任何幫助。

更新: 在立即窗口它表明:對於MySQL

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

發表您的完整的堆棧跟蹤誤差 – Ami

+0

。 。默認端口是3306而不是3036.除非你改變它。 – kiLLua

回答

0

默認端口是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

+0

我將端口更改爲3306.但仍然是相同的錯誤。 –

+0

另請嘗試UID = admin;密碼= *** - 我似乎記得MySQL連接器不允許一些別名,SQL /服務器沒有 – PeterJ

+0

沒有。還是一樣的錯誤。因爲它是安全的,我有什麼要做嗎? –

0

㈣以前有同樣的問題,我是一樣的,因爲它是在不同的服務器上運行。

嘗試從運行應用程序的位置ping服務器,並查看是否可以連接。這就是我發現並需要防火牆改變的方式。

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

連接到遠程MySQL數據庫使用VB.Net

要連接VB .net到遠程MySql數據庫;無論您使用的是什麼VB.Net版本,只需執行以下步驟即可。

1)從URL(https://dev.mysql.com/downloads/connector/net/

2)安裝在連接器下載MySQL連接/網絡;默認情況下,連接器將安裝在我安裝的版本的路徑(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)準備好您的連接形式,如圖所示; enter image description here

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 

末級

Form類代碼

公共類Frm_Main 私人小組btn_connect_Click (BYVAL發件人爲System.Object的,BYVALË作爲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)運行該項目並嘗試連接;如果連接成功,那麼你的運氣;並且如果連接不成功,則出現以下錯誤消息,不要只是繼續閱讀; enter image description here

8)注意在錯誤消息後@(IP地址,這就是你的IP),並把它添加到您的域名的cPanel「遠程MySQL訪問」的圖像波紋管說明了遠程MySQL訪問的樣子(它們是相同的他們可能會推遲顏色);不要忘記按「添加主機」按鈕。對於處於靜態IP地址的用戶,此設置可以每天工作。 enter image description here

上述步驟後查看成功信息;

enter image description here

但是,如果錯誤信息仍然存在試圖離開密碼文本空白,如果你有在遠程數據庫中沒有密碼重新連接;如果錯誤再次出現,除了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%,以確保連接穩定。 enter image description here

10)注意:當百分號(通配符)流向IP地址的左側時,安全門就會打開。出現新錯誤時,請聯繫您的域名提供商,域名中可能存在其他一些安全問題。謝謝!

-1

嘗試在MySQL 然後綁定地址=服務器上的MySQL的.ini配置IP或主機名的配置的.ini改變端口3307也可能你有你的端口錯字

相關問題