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创建用户时会指定权限