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

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-17 17:11:33

EC2开启MySql远程访问的相关文章

CentOS7和CentOS6怎样开启MySQL远程访问

CentOS6开启MySQL远程访问 1.开放MySQL访问端口3306 修改防火墙配置文件 vi /etc/sysconfig/iptables  加入端口配置      -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT 重新加载规则 service iptables restart   2.修改mysql库里的host 登录mysql: use mysql update user set host='%' w

Ubuntu下开启Mysql远程访问的方法

首先想说,JetProfiler对分析项目中MySQL问题以及优化,是个非常好的工具.但是看网上文章,中文介绍真的不多.是因为国内现在都不用MySQL了吗? 因为公司JetProfiler是共用的,安装于公共VM,需要从VM监控本机MySQL.MySQL本身默认设置是不对外开放访问功能的,在MySQL配置文件中,会发现 bind-address = 127.0.0.1 开启MySQL远程访问: 1. 注释掉MySQL 配置文件中 # bind-address = 127.0.0.1 2. roo

开启mysql远程访问过程中所遇常见问题的解决办法

今天在测试MySQL的连接时候,发现连接不通过,并报错ERROR 2003 (HY000): Can't connect to mysql server on '192.168.10.210' (111) 测试代码: require 'mysql2' client = Mysql2::Client.new(:host=>"192.168.10.210",:username=>'root',:password=>"root") puts result

开启mysql远程访问权限

开启Mysql远程访问 参考:https://blog.csdn.net/u012279312/article/details/79589354 在服务器上自带的客户端连接到mysql的命令行 shell mysql> mysql -u root -p 输入root用户的密码 mysql> select user,host from mysql.user; 直接root远程访问连接 方法一: mysql> update mysql.user set host='%' where user

Ubuntu中开启MySQL远程访问功能,并将另一个数据库服务器中的数据迁移到新的服务器中

一.开启MyS远程访问功能 1.进入服务器输入netstat -an | grep 3306确认3306是否对外开放,MySQL默认状态下是不对外开放访问功能的.输入以上命令之后如果端口没有被开放就会显示 <strong>显示结果:tcp 0 0 127.0.0.1:3306 0.0.0.0:*LISTEN</strong> 2.从上面的显示结果可以看出,mysql的3306端口只是监听本地的连接,这样就阻碍了外部ip对该数据库的访问,这样就需要修改mysql配置文件, 输入vim

开启mysql远程访问方法

默认情况下,mysql数据库是不允许远程访问的. 需要使用如下步骤打开mysql远程访问权限: 首先mysql -u root -p 登陆mysql命令行, 然后use mysql; 之后开通权限: GRANT ALL PRIVILEGES ON *.* TO 'ROOT'@'%' IDENTIFIED BY 'ROOT' WITH GRANT OPTION; (这一步可以通过 select user, host from user;查看下) 生效权限: flush privileges; 如此

Ubuntu Linux中开启MySQL远程访问功能

为了给服务器一个真实的运行环境,今天在内网中部署了一台Ubuntu Linux服务器,其中最头疼的就是MySQL的安装,apt下载更新的速度太慢了,于是就自行编译了一下MySQL的源码,具体的编译方法可以参考网上的一些资料吧,这里只对如何开始MySQL的远程访问功能做个简单的讲述: (1)确认一下3306是否对外开放,MySQL默认状态下是不开放对外访问功能的.查看的办法如下: Java代码 ~# netstat -an | grep 3306 tcp        0      0 127.0

CentOS系统中安装MySQL和开启MySQL远程访问的方法

安装MySQL 安装MySQL和php-mysql [[email protected] ~]# yum -y install mysql-server [[email protected] ~]# yum -y install php-mysql 配置MySQL [[email protected] ~]#vim /etc/my.cnf 编辑MySQL的配置文件 [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock #

windows下开启mysql远程访问

USE mysql;SELECT * FROM USER ; 直接修改user=root host=127.0.0.1为% FLUSH PRIVILEGES;