1.检查mysql是否开启了远程访问的权限
1.1 如果没有授予相应的权限则通过以下命令修改下:
GRANT
ALL
PRIVILEGES
ON
*.*
TO
'root'
@
'%'
IDENTIFIED
BY
'123456'
WITH
GRANT
OPTION
;//使用root用户从任何主机连接到mysql服务器。
允许某个用户从指定ip的主机连接到mysql服务器
GRANT
ALL
PRIVILEGES
ON
*.*
TO
'jack'
@’10.10.50.127’ IDENTIFIED
BY
'654321'
WITH
GRANT
OPTION
;
FLUSH RIVILEGES//重新授权命令
【该步还没解决的话接着往下步看】
2.检查防火墙是否禁止了3306端口,或者说没有开启该端口,以iptables为例
2.1关闭firewall
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
2.2开启iptables防火墙
vi/etc/sysconfig/iptables #编辑配置文件
重启iptables服务 service iptables restart
1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
注意:如果在修改iptables配置文件时,碰到语法错误会出现以下问题:
所以要仔细修改该配置文件
3.这时可以尝试下用一下命令检查下iptables服务是否已开启,mysql是否可以远程访问:
systemctl status iptables #查看iptables状态,看是否正常开启
telnet 23.89.126.28 3306 #查看是否可以远程连接,这里的ip填写你自己的
4.如果以上操作都ok了的话,还是不可以远程访问mysql的话,需要在阿里云服务器实例配置安全规则如图所示: