我在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;
答案 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安全组,以防止未经授权的访问。