源地址:https://www.cnblogs.com/cyttina/p/8185760.html
在阿里云的服务器上安装了MySQL,然后远程访问总是不通。查询了很久,排查思路如下:
- 检查的MySQL是否启动
- 检查本机3306端口是否处于监听状态
- 检查阿里云控制台是否开启了安全限制
- 检查MySQL的用户能否在远程进行登录
- mysql的bind-address设置为127.0.0.1
我们来一步步排查。
-
mysql是否启动
这个比较简单,ps -ef | grep mysql如果能看到对应的进程就是没有问题的
-
检查本机3306端口是否处于监听状态
可以通过netstat -tlanp | 如果本地端口监听状态telnet 127.0.0.1 3306看看是否成功,如果成功,则在远程telnet公网ip 3306来判断一下是否成功,如果成功说明没有问题,如果失败继续往下看
-
检查阿里云控制台是否开启了安全限制
阿里云默认是不会打开3306端口的,需要进行设置,设置方法见: https://help.aliyun.com/document_detail/25471.html?spm=5176.11065259.1996646101.searchclickresult.42468fa7McebNN
-
检查mysql用户能否在远程进行登录
这个主要是在新建mysql用户的时候授权ip需要填写%,可以在远程进入mysql然后查询下。
$ sudo mysql -u root -p
进入mysql客户端之后,
使用mysql;
select * from user;
查看一下host是否为%
- mysql的bind-address设置为127.0.0.1
要找到bind-address的设置,需要找到mysql的配置文件
$ sudo find / -name my.cnf
这个时候就能看到所有的配置相关的文件,我看到的文件中有这么一段描述
'''
MariaDB / MySQL工具按以下顺序读取配置文件:
- “/etc/mysql/mariadb.cnf”(此文件)设置全局默认值,
- “/etc/mysql/conf.d/*.cnf”设置全局选项。
- “/etc/mysql/mariadb.conf.d/*.cnf”设置仅限MariaDB的选项。
- “〜/ .my.cnf”设置用户特定选项。
“””
大意是根据根据1,2,3,4的优先级来判断,那么就根据这4个文件寻找一下,
最后在vi /etc/mysql/mariadb.conf.d/50-server.cnf这个文件中找到了bind-address 127.0.0.1修改之后,就完成了