使用腾讯云或者阿里云的服务器配置MariaDB数据库环境的时候,用Navicat远程连接在Centos7的Linux上配置MariaDB数据库环境的时候一直出错误代码 "2002 - Can't connect to server on '' (10060)"
可能原因如下
1.是否有权限访问MariaDB数据库
2.MariaDB的服务为开启或已关闭
3.MariaDB正在不同的端口上运行,连接端口错误
4.Linux防火墙阻止了与MariaDB的连接
5.是否被云服务器防火墙拦截
1.查看是否给root赋予了远程访问的权限,如果没有需要先给root访问权限
安装好MariaDB后设置访问权限,命令是:grant all privileges on *.* to 'root' @'%' identified by '123';
然后刷新权限,命令是:flush privileges;
然后进入MariaDB查询一下是否给root赋予了远程访问的权限,sql语句:select User,host from mysql.user
host的值有%代表root有了远程访问的权限,权限没有问题
2.查看MariaDB是否开启服务,在windos系统中MySQL没有开启服务也会报2002的错,Linux中的MariaDB类似.
查看命令:systemctl status mariadb
running说明服务已开启,没有问题.
3.然后排查MariaDB开启的端口是否是3306
查看命令:netstat -apn
端口号也没有问题
4.查看是否被防火墙拦截(防火墙默认是关闭的)
查看命令:sudo systemctl status firewall
查看结果防火墙也是关闭的,没有问题
5.查看是否被云服务器拦截
罪魁祸首终于找到了!就是这个云服务器拦截了3306的数据库端口连接,以腾讯云为例,在拦截规则里配置好之后就可以远程访问数据库了.