远程连接到在Amazon EC2实例中运行的mysql

时间:2014-01-06 16:43:49

标签: mysql amazon-web-services amazon-ec2

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

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 个答案:

答案 0 :(得分:2)

错误10060表示您不允许远程连接。

如果您已创建用户yourName@localhost,则无效。尝试使用通配符主机%创建用户:yourName@%

答案 1 :(得分:1)

尝试从my.ini中注释掉以下行。在Windows上,您可以在MySQL安装目录中找到它,通常类似于“C:\ Program Files \ MySQL \ MySQL Server 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安全组,以防止未经授权的访问。