2016-01-28 29 views
0

访问MySQL我有一个MYSQL服务器上我Windows 7运行,我需要从Debian VM访问它,但是当我尝试我得到这个错误:无法从我的VM

ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xxx.xxx' (110) 

my.ini检查,没有“bind-address”参数的标志,所以我只是不知道错误在哪里。我可以从我的Windows本地完全管理它。我的公司使用代理服务器,但由于我的虚拟机在我的机器上,因此它不应该阻塞任何东西。

感谢您的帮助!

+0

它不仅仅是bind-address,它还取决于正在使用的mysql用户,该用户应该可以访问其他ips而不仅仅是localhost。 –

+0

我总是使用root用户 – Ashenker

+0

首先从VM检查ping到windows 7。 –

回答

0

您需要将用户主机地址更改为*或给定xxx.xxx.xxx.xxx IP。 看这里:grant remote access of MySQL database from any IP address

+0

我尝试过:授予database.dbname的所有特权到'root'@'192.168.%';但它并没有解决问题.. – Ashenker

+0

你可以尝试手动编辑mysql数据库中的用户表,并刷新privillges。 – mkysoft

+0

我完全可以这样做,但是我想在该表中手动编辑什么?一切似乎绝对正确.. – Ashenker

0

你应该检查:

  • “绑定地址= 0.0.0.0”是出现在你的my.cnf
  • 您正在使用的用户具有远程访问(不只是“的locahost”)
  • 检查,如果你有运行

我真的建议创建一个特定的用户防火墙的MySQL端口(通常是3306)被打开远程访问权限有限。

+0

为什么要打开虚拟机上的端口3306。 MySQL服务器正在运行在Windows 7上 –

+0

Ooops,抱歉我误读了,并且认为服务器在Debian上。 – Simon

0

从外部访问MySQL。你应该启用MySQL远程访问。

1-评论在MySQL配置了以下行(的my.cnf/my.ini文件(用于Windows))

#bind-address= 127.0.0.1(如果不存在添加它,然后注释掉)

#skip-networking

2-保存文件,然后重新启动MySQL服务器

3-更新GRANT特权

默认情况下,MySQL的userna我和你使用的密码被允许在本地访问mysql-server。所以需要更新权限。

运行下面的查询来更新特权

GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

更改“用户名”到你的数据库用户和“密码”,以用户密码

+0

我现在在my.ini中添加了2个注释参数(没有找到my.cnf)并重新启动了服务器,我拥有用户root的所有授权选项,但仍然得到相同的错误.. – Ashenker

+0

您尝试过什么查询更新权限? –

+0

我尝试了你和@mkysoft的建议,意思是'将所有权限授予*。*到'root'@'192.168.%'使用授予选项;'''授予database.dbname上的所有特权到'root'@'192.168 。'%';' – Ashenker

0

最后我卸载了一切,再次trieed它现在工作,我现在关闭这张票是好的。

感谢那些曾试图帮助我的人!