EC2云主机开启MySql远程访问
最近在亚马逊云主机上安装MySql,想远程访问,结果无论如何都访问不了。在踩了若干坑之后,终于访问成功了,在此做一下记录:EC2云主机上安装了MySql后如何开启远程访问。
一、遇到的问题
想远程访问EC2上的MySql,总提示:
ERROR 2003 (HY000): Can't connect to MySQL server on 'xx.xx.xx.xx' (111)
或者
Host 'xx.xx.xx.xx' is not allowed to connect to this MySQL server
二、解决方案
1、设置EC2的防火墙
EC2默认防火墙是阻断所有流量,因此在EC2的Scurity Groups中除了其他必要的规则之外,还要添加一条入口流量规则:TCP的3306端口的任意源IP的连接都允许
。
2、MySql中设置用户的访问
MySql默认只允许从本机访问,要使得能够远程访问,分别在Terminal中执行以下命令:
mysql -u root -p
use mysql
update user set Host='%' where User='root'
这样就能从任意IP访问MySql了。
3、MySql中设置绑定IP
sudo vim /etc/mysql/my.cnf
然后把bind-address 127.0.0.1
改为bind-address 0.0.0.0
,这样EC2的IP无论怎样变化,都能够远程访问了。
4、重启MySql
sudo /etc/init.d/mysql restart
三、参考
Mysql初始化root密码和允许远程访问
Connect to mysql on Amazon EC2 from a remote server