2011-12-10 114 views
1

我有我的开发环境设置为一个Ubuntu服务器(与LAMP安装)在一个VMWare内。 VMware正在我的本地Windows 7机器上运行。当我尝试通过HeidiSQL程序访问我的mysql服务器时,连接失败。我得到一个:如何从远程计算机(不是本地主机)访问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.我认为这是开发人员必须解决的问题,这就是为什么我在这里发布它而不是超级用户。如果必须迁移,请将其发送给Server Fault not Super User。

+0

连接这里检查您的连接字符串http://www.connectionstrings.com/mysql。 – BizApps

回答

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; 
+0

对不起总在这里,我在哪里输入这个,在mysql监视器?或者将它添加到cnf文件中? – TK123

+0

这将通过客户端连接到mysql数据库。 –

+0

所以我尝试在mysql命令行输入第一个,它表示1行受到影响。然后我重新启动了服务器,并尝试再次从远程机器连接,仍然出现相同的错误。 – TK123

1

首先检查从CMD使用分配到VMware的IP

ipconfig/all 

假设ipassigned到VMware现在192.168.11.1 在vmware在Ubuntu检查ipadress的ubuntu

ifconfig 

假设IP地址是192.168.11.137 现在打开mysql配置

sudo nano/etc/mysql/my。CNF 更改绑定地址到Ubuntu的IP地址

bind-address = 192.168.11.137 

重启MySQL 现在连接到MySQL

mysql -u root -p 

,并创建与VMware即192.168.11.1

的所有特权和主机IP用户
GRANT ALL ON db.* TO [email protected]'192.168.11.1' IDENTIFIED BY 'PASSWORD'; 

现在尝试从窗口连接。 的MySQL也开放端口

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

重启MySQL,并尝试在Ubuntu主机的IP地址192.168.11.137