最近在亚马逊云主机上安装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.cnf1
然后把bind-address 127.0.0.1改为bind-address 0.0.0.0,这样EC2的IP无论怎样变化,都能够远程访问了。
4、重启MySQL
sudo /etc/init.d/mysql restart1
以下是小编为您精心挑选的MySQL相关内容,看看是否有所帮助:
CentOS 7下源码安装MySQL 5.6
Ubuntu 14.04下安装MySQL
Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL
Ubuntu 12.04 LTS 构建高可用分布式 MySQL 集群
Ubuntu 12.04下源代码安装MySQL5.6以及Python-MySQLdb