远程连接阿里云MySQL失败解决办法

转自:https://blog.csdn.net/qq_34332010/article/details/74106747

最近通过学生认证在阿里云上9.9/月鼓捣了一台服务器,不曾想到安装好MySQL后远程连接就折腾了半天,所以记录一下,也给遇到同样问题的朋友提供一种途径。

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
  •  

测试失败,说明防火墙不允许连接3306端口。根据不同操作系统,不同防火墙,配置防火墙允许3306连接。 
一般情况下经过以上步骤,就能确保连接成功,但本人不幸千万次尝试都不能成功[抓狂]。想到阿里云是不是有更严格的安全策略,登录云服务器控制台->安全组->配置规则。默认情况下,入方向阿里云只允许访问3389,22,-1端口,所以添加3306,果然成功。 
这里写图片描述

猜你喜欢

转载自blog.csdn.net/LONG_Yi_1994/article/details/82228743