Cannot connect to remote MySQL with VB6 (10060)

a 夏天 提交于 2019-12-23 01:55:08

问题


I got a hosting plan from GKG.net and I have a VB6 connection string to remotely reach MySQL database in it. I followed all instructions and tutorials about how to reach MySQL server remotely. Everything was fine till i get an error that says:

[MySQL][ODBC 3.51 Driver] Can't connect to MySQL server on 'xxx.xxx.xxx.xxx' (10060)

I searched for a solution over the net for hours but still there is nothing makes sense about it.. I double checked my connections.. I can ping to my static ip, but cant reach the MySQL server in it.

From CPanel i can reach my db with phpMyAdmin. I tested my db and there was nothing wrong with it. Everything seems right. Except i still get the error message with VB6

My connection string:

Dim conn As ADODB.Connection
Dim constr As String
Private Sub OpenServer()
    Set conn = New ADODB.Connection
    constr = "Driver={MySQL ODBC 3.51 Driver};" & _
             "PORT=" & db_port & ";" & _
             "SERVER=" & db_server & ";" & _
             "DATABASE=" & db_name & ";" & _
             "UID=" & db_user & ";" & _
             "PWD=" & db_pass & ";" & _
             "OPTION=3;" & _
             "STMT=;"
    conn.Open constr
End Sub

So how can i resolve this damned connection issue? and What are the odds that causes this?


回答1:


Hosts where you access their database server very rarely allow remote access to the database from outside their hosting environment (I have never seen it).

If you setup the MySql database yourself (on a dedicated or virtual server plan) then you should be able to set it up to accept remote hosts. In that case you need to modify your my.con file to allow remote hosts (you can also do it via the MySql Admin tools) and you need to grant the login you are trying to use access from the remote IP:

http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html

Your previous comment about SQLyog is a very good idea. And I can vouch for that product. It is a great tool. The free admin tools from MySql (Workbench - http://www.mysql.com/downloads/workbench/) are also decent and will allow you to test remote access as well.




回答2:


check this Solution to Connecting remotely when you get Error 10060

http://forums.mysql.com/read.php?34,49742,239961

http://www.bigresource.com/VB-Remote-MySQL-Server-h6Z8Cbaszz.html#

MySQL is setup to handle remote connections very easily. However, you must setup MySQL to allow your users in. The other thing to do, is make sure port 3306 is open on the host. If it is not, then you can't connect to MySQL. The easiest way to do this is to...

telnet myhost 3306

If you get something back like... , 3.23.54-log▬I_&:309i☻

then port 3306 is open and MySQL is listening.

Next, make sure your userid is setup to allow access on the MySQL server. You can do this with the mysql client software, or the mysqlcc software.

Hope this helps




回答3:


I had this problem. I could connect from localhost but not from a client computer. I turned off Windows firewall (windows 8). However, no joy. I then created a new rule in firewall advanced settings and BINGO it worked. The new rule just allowed incoming connections on port 3306 on my private network.




回答4:


Another approach for VB6. I use it like this in all my apps and its been working for years.

Dim StoreDB As ADODB.Connection

On Error Resume Next

Set StoreDB = New ADODB.Connection

StoreDB.Open "Driver={MySQL ODBC 3.51 Driver};Server=000.000.000.000;Port=3306;Database=yourDBName;User=Someusername;Password=Somepassword;OPTION=8;"

If Err.Number = 0 Then

[VB6 Code to execute]

Else

myErrorString = Err.Description

End If

StoreDB.Close

Set StoreDB = Nothing

As mentioned, ensure port is 3306. I have a host that uses 3307. I see no problem with your code. You probably need to sort this with the host.




回答5:


Add mysqlid.exe into your windows firewall settings to access your server remotely



来源:https://stackoverflow.com/questions/12349948/cannot-connect-to-remote-mysql-with-vb6-10060

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!