ECS 远程连接MySQL和MongoDB失败的问题

1、检查是否是网络和防火墙的问题

ping  ip_地址                      //ping不通网络问题
telnet  ip_地址  port_端口   //连接失败是防火墙的问题

telnet时若出现Telnet is not recognized as internal or external command 
windows需要在Control Panel>Programs>Turn Windows features on or off 把Telnet Client 勾选上并保存

2、解决防火墙问题

先检查是否是云服务器后台是否配置了安全组规则,因为即使服务器配置了开放端口,后台没有相应的配置,也是telnet失败的。

进入 云服务器ECS-->网络和安全-->安全组-->创建安全组-->配置规则 配置

若已在ECS后台配置好,配置防火墙,开启3306端口 
vi /etc/sysconfig/iptables 
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允许3306端口通过防火墙) 
service iptables restart(重启防火墙使配置生效)

3、查看MySQL和MongoDB端口状态

netstat -apn|grep 3306 
netstat -apn|grep 27017

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      25972/mysqld
tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      26778/mongod

若host是127.0.0.1,则表明端口仅仅绑定在本地,需要进入相应的配置文件配置

my.cnf
bind-address=0.0.0.0   //不配置或者IP配置为0.0.0.0,表示监听所有客户端连接。

mongod.conf
bindIp: 0.0.0.0

3. 检查用户访问权限

MySQL建用户的时候会指定host默认是127.0.0.1/localhost,这个用户就只能本机访问, 其它机器用这个用户帐号访问会提示没有权限,需要把host改为%,表示允许所有机器访问。 

mysql -u root -p 
use mysql; 
update user set host="%" where user="root";
//重启mysql使配置生效
/etc/init.d/mysql restart

//MongoDB创建用户时会指定权限

你可能感兴趣的:(ECS 远程连接MySQL和MongoDB失败的问题)