原文链接: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