站点图标 Linux-技术共享

阿里云Ubuntu系统无法远程连接MySQL解决方法

前言

今天想在本地远程连接阿里云Ubuntu中的MySQL,结果按照网上的教程进行配置后,还是出现了点问题,遂自己找到问题并记录下来。


正文

1、先登录MySQL,并创建一个拥有所有权限的用户
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' 
IDENTIFIED BY '用户密码' WITH GRANT OPTION;
2、刷新权限信息,使其立即生效
FLUSH PRIVILEGES;
3、进入MySQL目录,修改mysqld.cnf文件

进入MySQL目录时,我们发现了一个my.cnf文件(window是my.ini好像)
点击之后发现里面内容很少,但是最后有两行代码,大致意思就是引入外部文件
我们根据它的指示,打开mysql.conf.d目录,发现里面有一个mysqld.cnf文件,这个就是我们需要修改的文件了!
建议大家修改每一个配置文件之前,对源文件进行拷贝,如果修改出错的话,可以使用拷贝文件替换修改的文件,避免问题变得更大!
红色圈是我们要修改的文件,蓝色圈是我拷贝的副本
修改mysqld.cnf,找到bind-address=127.0.0.1,将其注释,并添加bind-address=0.0.0.0

4、在本地服务器中测试是否可以连接MySQL

这里我使用的是navicat,新建连接,选择MySQL,按照下图进行填写

点击测试连接后发现,报错了!
我去查了百度,然后可能是因为Ubuntu那边开启了防火墙

 
 
 
5、关闭服务器防火墙

先查看防火墙状态,如果防火墙为inactive(关闭)状态,则可以跳过此步骤,直接看第6步

sudo ufw status

若防火墙为active(开启状态),则输入以下命令关闭防火墙

sudo utf disable

再次测试是否能够连接,还是不行

6、开启阿里云控制台3306端口

此时我想到了还有一种可能,就是端口没有开启,因为我之前也因为阿里云端口的问题,

登录阿里云控制台,查看服务器的安全组规则
果然没有看到3306端口(这里面的端口是我之前配置的,如果跟你们显示的不一样是正常的)

添加安全组规则,按照下图进行填写

7、再次测试连接

连接成功!


总结

在修改配置文件的时候,建议大家养成备份的好习惯
笔者之前因为一直修改配置文件,导致错误越来越多,想要恢复就比较麻烦了,最后不得不重装各种应用还有配置环境,有时候重装还不能解决问题orz,做了不少无用功。
加油!继续解决一个一个的问题!

退出移动版