我将我的开发环境设置为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。我认为这是开发人员必须处理的事情,这就是我在这里发布而不是超级用户的原因。如果必须迁移,请将其发送到服务器故障而不是超级用户。
答案 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的ipipconfig/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文件,你可以上传到你的服务器,它将通过它连接。