无法连接到远程mysql数据库服务器

时间:2014-02-10 08:11:40

标签: mysql ubuntu virtual-machine vb.net-2010 remote-access

我无法弄清楚为什么我无法在VMware内部访问ubuntu中的远程MySQL服务器。我已经有了代码,它已成功连接到我的localhost以及插入,删除和更新数据。但是当我使用指定的IP服务器地址创建一个新的连接字符串时,它会显示错误:

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 'root@*' IDENTIFIED BY 'my_password';
  FLUSH PRIVILEGE;

我唯一知道的是我在服务器文件中找不到my.cnf,但已经在我的localhost的bind ip地址中更改了my.ini。

  #bind-address="127.0.0.1" 

3306正在倾听

enter image description here

我在my.cnf中有这个

enter image description here

为什么会出现此错误?

enter image description here 有人请帮忙。

1 个答案:

答案 0 :(得分:0)

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

在my.cnf中,您应该验证--skip-networking已被注释掉


[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