如何从远程计算机(而不是localhost)访问MySQL?

时间:2011-12-10 02:40:52

标签: mysql networking

我将我的开发环境设置为vmware内的Ubuntu服务器(使用LAMP安装)。 vmware在我的本地Windows 7机器上运行。当我尝试通过HeidiSQL程序访问我的mysql服务器时,连接失败。我得到了:

Server Error 2003, can't connect to mysql server on <IP ADRESS HERE>

但是我可以通过PhpMyAdmin访问数据库服务器。 MySQL正在运行,我的连接凭据和端口都是正确的。

我读到您应该输入您尝试连接的计算机的IP作为my.cnf文件中的“绑定地址”。我做了什么。我尝试了内部网络IP和在线IP。仍然没有运气,同样的消息。

由于这不是生产环境,我希望任何人都可以访问该服务器,而不是通过IP限制它。特别是因为我的ISP分配动态IPS。所以我必须一直改变它,假设它甚至有效。

所以有人知道如何从远程计算机连接到我的MySQL服务器吗?

P.S。我认为这是开发人员必须处理的事情,这就是我在这里发布而不是超级用户的原因。如果必须迁移,请将其发送到服务器故障而不是超级用户。

3 个答案:

答案 0 :(得分:4)

好的,请注意这让世界和他的狗可以访问你的mysql服务器。

GRANT ALL ON *.* to '%'@'%' WITH GRANT OPTION;

但是说你在你的家庭网络192.168.1.2/16然后你至少可以这样限制它。

GRANT ALL ON *.* to '%'@'192.168.%' WITH GRANT OPTION;

另一个选择是你有一个用户和密码,但想要从任何地方连接

GRANT ALL ON *.* to 'mysecretuser'@'%' IDENTIFIED BY 'mysecretpassword' WITH GRANT OPTION;

答案 1 :(得分:1)

首先使用cmd

检查分配给vmware的ip
ipconfig/all

假设ipassigned to vmware是192.168.11.1 现在在ubuntu的vmware中检查ipadress

ifconfig

假设ubuntu的ip地址是192.168.11.137 现在打开mysql配置

sudo nano /etc/mysql/my.cnf 将绑定地址更改为ubuntu ip address

bind-address = 192.168.11.137

重启mysql 现在连接到mysql

mysql -u root -p

并创建一个具有所有权限的用户和vmware的主机ip,即192.168.11.1

GRANT ALL ON db.* TO user@'192.168.11.1' IDENTIFIED BY 'PASSWORD';

现在尝试从Windows连接。 也打开mysql的端口

/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT

重启mysql并尝试连接ubuntu主机IP地址192.168.11.137

答案 2 :(得分:0)

对于Heidi SQL,我可以按照本文的说明进行操作:

http://mysql-tools.com/en/articles/http-tunnel/73-heidisql-a-http-tunnel.html

它使用一个名为HTTP Tunnel的程序。它慢得多,但至少它有效。如果你使用Navicat它附带一个PHP文件,你可以上传到你的服务器,它将通过它连接。