Navicat无法远程连接MySql服务器问题的解决方法

写在前面:

操作系统:银河麒麟4.0;
数据库:MySQL5.7.26;
JDK:采用银河麒麟系统自带的openjdk;
客户端工具:Navicat;

前置条件:
MySQL服务安装完毕;

情景:

安装好mysql,本地访问正常,但同一个局域网内的机器都无法访问该服务器上的mysql数据库;

原因:

mysql默认是不可以通过远程机器访问的,只允许本地访问,通过下面的配置可以开启远程访问;

排查思路:

mysql设置远程访问主要从以下三个方面去检测:首先检查网络,两台计算机之间必须能ping通,这是基础;第二:检测3306端口,对于端口只允许本机访问,有两个地方启用,一个是mysql配置绑定本机地址,另一个就是防火墙启用3306;第三:mysql用户访问权限的问题。

根据思路逐一排查

1.网络检测:
ping mysql所在主机的ip地址
看是否能ping通,如果能ping通,说明不是网络的问题;
我的可以ping通,说明不是网络的问题;

2.端口检测:
检测3306端口:
netstat -ntpl | grep 3306,如图:
检测22端口:
netstat -ntpl | grep 22,如图:

综上可以看出22端口监听所有地址,而3306端口只监听了本地地址,所以远程无法访问。对于端口只允许本机访问,有两个地方启用,一个是防火墙启用3306,另一个就是mysql配置绑定本机地址。所以Navicat无法连接远程MySQL这个问题我们找到问题所在了,我们只需将3306端口允许远程访问即可;

解决办法:
一般情况下,我们只需要去修改/etc/mysql/my.cnf配置文件即可,将my.cnf配置文件中的bind-address=127.0.0.1改成bind-address=0.0.0.0,并且把skip-networking注释掉即可;

但是我的my.cnf配置文件中并没有bind-address=127.0.0.1和skip-networking这两行代码,我就自己加上了bind-address=0.0.0.0这行代码,以为会好使,重启系统后,结果,并没有卵用!!!再次检测3306端口,发现还是只允许本地访问,就在我百思不得其解的时候,配置文件中的一句注释引起了我的注意~此处有惊喜,问题马上就可以解决了 > . <

然后我们再去看/etc/mysql/my.cnf配置文件,发现了一句话,如图:

“从以下配置目录导入所有的以.cnf结尾的文件”,啧啧啧,有没有种恍然大悟的感觉?也就是说address=127.0.0.1这行配置没有在my.cnf配置文件中配置,可能在那两个目录下的某一个配置文件中配置了,所以我们就去找找看看呗,无论如何得把“address=127.0.0.1”这行代码找到。

首先去第一个目录:/etc/mysql/conf.d,进去看一下cnf.d文件,如图:


没有“address=127.0.0.1”;

再去第二个目录中:/etc/mysql/mariadb.conf.d/,发现下面有5个以.cnf结尾的文件,分别是:50-client.cnf , 50-mysql-clients.cnf , 50-mysqld_safe.cnf , 50-server.cnf , my.cnf,如图:

用脑子猜一下,你也知道该去看哪个文件了,没错,我锁定了“50-server.cnf”文件,进去一看,果然找到了“address=127.0.0.1”这行代码,把它改成“address=0.0.0.0”即可,如图:

然后重启计算机(注意这里必须要重启计算机,重启mysql没用,我重启mysql是没用),再查看端口,如下:

开心吗,终于改过来了,不得不吐槽一下MySQL,不光得看它配置文件中的配置,连配置文件里的注释我们也不能忽略,啧啧啧,我也是够服气的~~长记性了!

然而端口检测这一步还没有完,MySQL配置文件我们检测完了,还有一个地方,防火墙3306端口是否开启;

防火墙检测:
查看:iptable --list
我查了一下,我的防火墙没有开启,如果有防火墙要开启防火墙3306端口,或者直接关闭防火墙;

到现在为止,3306端口检测就没有问题了。

3.mysql用户访问权限:
进入mysql数据库:mysql -uroot -p
use mysql;
查询用户访问权限:
select host,user from user;如图:

mysql建用户时会指定一个host,默认是127.0.0.1(localhost),只能本机访问,其他机器用这个用户账号访问时会提示没有权限,将host改为“%”,表示允许所有机器访问。(我这里已经改成允许所有机器访问了)
修改的语句为:
grant all on . to ‘root’@’%’ identified by ‘root用户的密码’ with grant option;
flush privileges;

还有一个值得注意的地方是:要删除“多余的用户”,就拿我自己来说,我之前有两个root用户,如下:
user host
root %
root 127.0.0.1
这个时候为了避免出错,就可以把127.0.0.1的那个root用户删除掉了(我这里就掉进坑里了,我是在修改密码的时候掉这个坑里了,修改的是%的root的密码,结果我一直用127.0.0.1的root登录,一直登不上去,,,);

总结

综上所述,mysql设置远程访问的问题就解决了,总结一下,mysql设置远程访问主要从以下三个方面去检测:首先检查网络,两台计算机之间必须能ping通,这是基础;第二:检测3306端口,对于端口只允许本机访问,有两个地方启用,一个是mysql配置绑定本机地址(修改mysql配置文件(友情提示,不一定是my.cnf哦~要仔细阅读配置文件中的内容~)bind-address=0.0.0.0),另一个就是防火墙启用3306(检测防火墙);第三:mysql用户访问权限的问题。

这是我曾经踩过的坑,觉得值得一记,所谓的经验,不过是踩过的坑多了,遇见的问题多了,然后解决了,从坑里跳出去了,经验也就有了,积累经验,从自己踩过的每一个坑开始,然后不断的提升自己,加油!

Navicat无法远程连接MySql服务器问题的解决方法相关推荐

  1. mysql总是显示无法连接服务器,Navicat出现无法远程连接MySql服务器问题的解决办法...

    Navicat无法远程连接MySql服务器问题的解决方法写在前面: 操作系统:中标麒麟4.0: 数据库:MySQL5.7.26: JDK:采用中标麒麟系统自带的openjdk: 客户端工具:Navic ...

  2. 服务器配置mysql外网无法连接_Navicat出现无法远程连接MySql服务器问题的解决办法...

    Navicat无法远程连接MySql服务器问题的解决方法写在前面: 操作系统:中标麒麟4.0: 数据库:MySQL5.7.26: JDK:采用中标麒麟系统自带的openjdk: 客户端工具:Navic ...

  3. 使用navicat远程连接mysql时报2059错误解决方法

    navicat连接mysql时报2059错误解决方法 报错原因 解决方案 1.管理员权限打开cmd 2.修改加密规则及密码 3.退出,重启mysql 报错原因 这个错误出现的原因是在mysql8之前的 ...

  4. 远程连接mysql速度慢的解决方法

    PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的MYSQL开启了DNS的反向解析,在MY.INI(WINDOWS ...

  5. 远程连接mysql速度慢的解决方法:skip-name-resolve取消DNS的反向解析

    PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的 MYSQL开启了DNS的反向解析,在MY.INI(WINDOW ...

  6. PHP远程连接MYSQL数据库非常慢的解决方法

    不知道如何解决,所以把他空间所在的服务器上也装了个MYSQL,才解决问题,今天又有个这个问题,不能也在这服务器上装一个MYSQL吧,Search: PHP远程连接MYSQL速度慢,有时远程连接到MYS ...

  7. Navicat远程连接MySQL服务器

    文章目录 一.准备 二.配置Navicat允许远程连接MySQL数据库 1.使用Navicat直接连接MySQL 2.使用 Navicat 通过 SSH 远程登录后再本地方式连接 MySQL 3.查看 ...

  8. navicat远程连接mysql很慢_解决Navicat远程连接mysql很慢的方法

    ubuntu 下 /etc/mysql/mysql.conf.d [mysqld] skip-name-resolve  增加该字段即可 如果增加该字段,这无法使用本地ip进行登入, 登陆到MySql ...

  9. mysql 错误代码1130_解决远程连接mysql错误1130代码的方法

    解决远程连接mysql错误1130代码的方法 今天在用远程连接Mysql服务器的数据库,不管怎么弄都是连接不到,错误代码是1130,ERROR 1130: Host 192.168.2.159 is ...

最新文章

  1. 跨平台PHP调试器设计及使用方法——拾遗
  2. Migration Necessary
  3. leetcode-16-最接近的三数之和
  4. [Java基础]Calendar类基础
  5. Hexo-fluid主题设置统计博客阅读量
  6. linux shell中获取mongodb最大连接数、内存使用情况等
  7. Xcode 9.0 报错, Safe Area Layout Guide Before IOS 9.0 和launch screens may not set custom classnames报错
  8. Swagger2自定义添加请求头key-value暴力猴插件
  9. R统计绘图-使用rgl或pca3D包绘制3DPCA图
  10. 威联通nas怎么更换大硬盘_QNAP 篇一:记一次换硬盘引发的折腾
  11. matlab声音信号调制-3种方法(附matlab代码)
  12. macOS开启高性能模式
  13. 学习经验分享之八:EI检索查询
  14. Python基于basemap画论文级别的多子图空间场
  15. 推荐几款App跨平台开发工具
  16. 鸿蒙启智 博学多才,如何启智——【3岁阶段孩子的教养之63】
  17. android 三种定位方式 介绍
  18. 搭建邮件归档系统的必然性
  19. ta软件测试工具,RS®TA-TRS 自动化测试序列软件
  20. 管理思想之火象星座特质

热门文章

  1. 加油站问题-贪心算法(面试题JS)
  2. 1.3 pipenv使用
  3. IDEA Git Maven 基础开发环境搭建
  4. Js-正则替换字符串replace()方法超详细用法
  5. mapState(辅助函数)
  6. IDEA删除 无效的Maven项目
  7. C-V2X车载终端的 “集成”之路
  8. python升级版本
  9. 抓取B站所有用户信息
  10. 20张图为您讲述磁盘发展史