原文:https://blog.csdn.net/hohaizx/article/details/78370333
1、修改MySQL监听IP
默认情况下MySQL监听的是127.0.0.1,也就是本机,所以只有本机能够连接上,因此需要将MySQL改成监听远程主机IP或者所有IP。
以Ubuntu为例,打开修改以下文件:
vim /etc/mysql/mysql.conf.d/mysqld.cnf
1
找到bind-address,如果监听固定远程IP,则改成远程主机IP,若监听所有IP,则改成0.0.0.0或者注释bind-address。修改完成后重启MySQL
service mysql restart
1
再次查看MySQL监听地址
netstat -ano | grep 3306
1
这时MySQL正在监听所有地址。
2、赋予账号远程登录权限
MySQL默认情况下只允许用户本地登录,所有需要赋予用户远程登录的权限。进去MySQL,
mysql> grant all privileges on . to '用户'@'ip' identified by '密码' with grant option;
mysql> flush privileges;
1
2
第一句语句语句中,.代表所有库表,若想给予所有IP权限,”ip”写成“%”,所以第一句sql的意思是给予来自所有IP地址的通过“用户”,“密码”登录的用户对所有库表的所有操作权限。
第二句sql,刷新权限。
然后同样重启MySQL生效。
3、检查防火墙
服务器是否开启了防火墙,防火墙是否允许3306端口连接。可以通过telnet测试
telnet ip port
1
测试失败,说明防火墙不允许连接3306端口。根据不同操作系统,不同防火墙,配置防火墙允许3306连接。
一般情况下经过以上步骤,就能确保连接成功,但本人不幸千万次尝试都不能成功[抓狂]。想到阿里云是不是有更严格的安全策略,登录云服务器控制台->安全组->配置规则。默认情况下,入方向阿里云只允许访问3389,22,-1端口,所以添加3306,果然成功。