2014-02-10 164 views
1

我无法弄清楚为什么我不能在VMware内的ubuntu上访问远程MySQL服务器。我已经有了代码,它已经成功连接到我的本地主机以及插入,删除和更新数据。但是,当我做指定IP地址的服务器一个新的连接字符串时,它显示一个错误:无法连接到远程mysql数据库服务器

enter image description here

我只能通过SSH和浏览器(192.168.56.xxx/phpmyadmin)访问该服务器上的文件。

这是我的连接字符串的代码。

Dim conn As New MySqlConnection 
conn.ConnectionString = "Server=192.168.56.xxx;port=3306;User=root;password=mypassword;Database=prodDB_vb" 
conn.Open() 
MessageBox.Show("Connection to Database has been opened.") 
cmd.Connection = conn 

我已经阅读了很多关于此的论坛。但不明白他们指的是什么。 此外,我执行的代码:

GRANT ALL PRIVILEGES ON prodDB_vb TO '[email protected]*' IDENTIFIED BY 'my_password'; 
    FLUSH PRIVILEGE; 

我唯一知道的是,我无法找到服务器文件my.cnf中,但已经改变我的my.ini在我的本地主机的绑定IP地址。

#bind-address="127.0.0.1" 

3306听

enter image description here

,我有这在我的my.cnf

enter image description here

有这个错误,为什么?

enter image description here 任何人都请帮忙。

回答

0

您是否检查确认MySQL实际上在3306上进行侦听?运行一个netstat -tlpn并提供结果。如果你没有看到3306,那么它可能不是。

在my.cnf您应该验证--skip-网络被注释掉

 

[mysqld] 
user   = mysql 
pid-file  = /var/run/mysqld/mysqld.pid 
socket   = /var/run/mysqld/mysqld.sock 
port   = 3306 
basedir   = /usr 
datadir   = /var/lib/mysql 
tmpdir   = /tmp 
language  = /usr/share/mysql/English 
bind-address = 65.55.55.2 
# skip-networking 

要找到CNF file

编辑:

例如,如果你的MySQL服务器IP是192.162.0.3那么整个块应如下所示:

 

[mysqld] 
user   = mysql 
pid-file  = /var/run/mysqld/mysqld.pid 
socket   = /var/run/mysqld/mysqld.sock 
port   = 3306 
basedir   = /usr 
datadir   = /var/lib/mysql 
tmpdir   = /tmp 
language  = /usr/share/mysql/English 
bind-address = 192.168.0.3 
# skip-networking 
.... 
.. 
.... 

  • bind-address:要绑定的IP地址。
  • skip-networking:根本不要侦听TCP/IP连接。所有与mysqld的交互都必须通过Unix套接字进行。强烈建议仅允许本地请求的系统使用此选项。由于您需要允许远程连接,因此应将此行从文件中删除或将其置于注释状态。

然后我们必须重新启动mysql服务采取有效的改变:

/etc/init.d/mysql restart 
+0

我在哪里看那个的my.cnf?在服务器端还是在本地主机?我已经在我的本地主机搜索,我发现my.ini有bind-address =“127.0.0.1”.. –

+0

wat是你正在使用的端口?找到cnf文件检查我提供的链接。 –

+0

在my.ini中,我有3306个端口。 –