我无法弄清楚为什么我无法在VMware内部访问ubuntu中的远程MySQL服务器。我已经有了代码,它已成功连接到我的localhost以及插入,删除和更新数据。但是当我使用指定的IP服务器地址创建一个新的连接字符串时,它会显示错误:
我只能通过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正在倾听
我在my.cnf中有这个
为什么会出现此错误?
有人请帮忙。
答案 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 .... .. ....
然后我们必须重新启动mysql服务以实现更改:
/etc/init.d/mysql restart