2014-01-06 50 views
1

我在Amazon EC2上创建了Windows Server 2012实例。我已经安装了MySQL并建立了一个用于测试的数据库,并且我有一个用所有权限创建的用户。我不想从另一台Windows机器远程连接到这个数据库,但连接不起作用。我打开了端口3306并允许所有流量(再次仅用于测试)。我可以ping服务器就好了,但是当我尝试连接使用命令提示符像这样:远程连接到在Amazon EC2实例中运行的mysql

MySQL Server/bin>mysql -h "IP address for my instance" -u User -p"password" 

我得到的错误:

ERROR 2003 (HY000): Can't connect to MySQL server on "host" (10060) 

我不知道是什么导致了这一点。我错过了什么吗?

编辑

我创建了使用此命令的权限的其他用户:

mysql>CREATE USER 'testUser'@'%' IDENTIFIED BY 'somepass'; 
mysql>GRANT ALL PRIVILEGES ON *.* TO 'testUser'@'%' WITH GRANT OPTION; 
mysql>FLUSH PRIVILEGES; 

回答

2

错误10060意味着你不能远程连接。

如果您创建了一个用户[email protected],它将不起作用。尝试使用通配符主机创建用户,%[email protected]%

+0

我以为我已经做到了,但我会做一个新用户,以确保谢谢! – Andy

+0

仍然没有运气,看看编辑,看看我做了什么。 – Andy

+0

这仍然是你得到的错误吗? ('10060')一点Google搜索给了我这个:http://kylegoslin.wordpress.com/2012/05/18/109/祝你好运! – Martin

1

尝试从my.ini中注释以下行。在Windows上,你可以找到它在MySQL的安装目录,通常像“C:\ Program Files文件\的MySQL \ MySQL服务器5.5 \”

bind-address = 127.0.0.1 

基本上这告诉MySQL来只听从127.0.0.1来请求。这是出于安全原因的默认设置。你也可以做类似

bind-address = <ip address of one of your network interfaces> 

这基本上只会监听特定网络接口上的请求。

如果您注释掉bind-address选项,则可能需要相应地配置您的AWS安全组以防止未经授权的访问。

+0

我试过找到这个文件,但我找不到它,我正在运行MySQL 5.6如果这有所作为 – Andy

+1

在Windows上,该文件是'my.ini'而不是'my.cnf'。 –

+1

一些解释为什么这是必要的 - 也就是说,默认情况下(出于安全原因),mysql只监听来自本地主机的连接。 –

相关问题