远程连接阿里云mysql

原文链接:https://blog.csdn.net/wangjiawei0227/article/details/73430980

服务器 ubuntu16.04

阿里云服务器端口连接

开始尝试

最开始先在网上找怎样配置,很多教程。

  • 第一步

mysql -u root -p

输入密码进入mysql

grant all privileges on . to root@”%” identified by “password”;

输入上面的指令,其中 password 表示你远程登录mysql的密码 root 表示远程登录的账户名,% 表示所有的IP都可以访问登录。如果只希望特定的IP可以在这里将特定IP替换掉%

flush privileges;

刷新权限信息

  • 第二步

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

找到bind-address = 127.0.0.1 注释掉变为这样

# bind-address = 127.0.0.1

保存退出以后重启mysql服务

sudo /etc/init.d/mysql restart

失败

按照网上的尝试,到这一步以后应该就可连接了,可是我是尝试了又重试,总是显示timeout

mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2003 (HY000): Can't connect to MySQL server on '*.*.*.*' (60)
  • 1
  • 2

当然很郁闷,于是只好各种找办法

sudo ufw disable 关闭防火墙 。无效 
netstat -tln 查看哪些端口被使用了 查到了3306没什么毛病 。无效

最后还尝试了各种重启什么的办法都失败了。发现居然远程

telnet [ipaddress] 3306

都失败了,我试了一下在服务器上是可以telnet到自己的

瞬间想到了服务器是在阿里云上,应该是阿里云对端口访问有一个安全限制,上去云服务器一看果然…

这里写图片描述
有一个安全组限制的设置,设置一下入方向可以允许3306端口再尝试以下,瞬间就好了…


tips:

1、阿里云安全组,阿里云安全组,阿里云安全组

2、点击阿里云服务器中的实例-》进入对应的安全组-》添加允许访问3306安全规则

3、修改了mysql库就要FLUSH PRIVILEGES,这样才能生效,或者重启mysql

猜你喜欢

转载自blog.csdn.net/wangxinxinsj/article/details/81010994