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

 更新时间:2020年8月4日 08:03  点击:1866

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服务器问题的解决办法的文章就介绍到这了,更多相关Navicat无法远程连接MySql服务器问题内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

[!--infotagslink--]

相关文章

  • MySQL性能监控软件Nagios的安装及配置教程

    这篇文章主要介绍了MySQL性能监控软件Nagios的安装及配置教程,这里以CentOS操作系统为环境进行演示,需要的朋友可以参考下...2015-12-14
  • Intellij IDEA连接Navicat数据库的方法

    这篇文章主要介绍了Intellij IDEA连接Navicat数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友可以参考下...2021-03-25
  • 详解Mysql中的JSON系列操作函数

    新版 Mysql 中加入了对 JSON Document 的支持,可以创建 JSON 类型的字段,并有一套函数支持对JSON的查询、修改等操作,下面就实际体验一下...2016-08-23
  • 深入研究mysql中的varchar和limit(容易被忽略的知识)

    为什么标题要起这个名字呢?commen sence指的是那些大家都应该知道的事情,但往往大家又会会略这些东西,或者对这些东西一知半解,今天我总结下自己在mysql中遇到的一些commen sense类型的问题。 ...2015-03-15
  • MySQL 字符串拆分操作(含分隔符的字符串截取)

    这篇文章主要介绍了MySQL 字符串拆分操作(含分隔符的字符串截取),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22
  • mysql的3种分表方案

    一、先说一下为什么要分表:当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。根据个人经验,mysql执行一个sql的过程如下:1...2014-05-31
  • Windows服务器MySQL中文乱码的解决方法

    我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B。...2015-03-15
  • Centos5.5中安装Mysql5.5过程分享

    这几天在centos下装mysql,这里记录一下安装的过程,方便以后查阅Mysql5.5.37安装需要cmake,5.6版本开始都需要cmake来编译,5.5以后的版本应该也要装这个。安装cmake复制代码 代码如下: [root@local ~]# wget http://www.cm...2015-03-15
  • 用VirtualBox构建MySQL测试环境

    宿主机使用网线的时候,客户机在Bridged Adapter模式下,使用Atheros AR8131 PCI-E Gigabit Ethernet Controller上网没问题。 宿主机使用无线的时候,客户机在Bridged Adapter模式下,使用可选项里唯一一个WIFI选项,Microsoft Virtual Wifi Miniport Adapter也无法上网,故弃之。...2013-09-19
  • 忘记MYSQL密码的6种常用解决方法总结

    首先要声明一点,大部分情况下,修改MySQL密码是需要有mysql里的root权限的...2013-09-11
  • MySQL数据库备份还原方法

    MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:/Program Files/MySQL/MySQL Server 4.1/bin (或者直接将windows的环境变量path中添加该目录) ...2013-09-26
  • Mysql命令大全(详细篇)

    一、连接Mysql格式: mysql -h主机地址 -u用户名 -p用户密码1、连接到本机上的MYSQL。首先打开DOS窗口,然后进入目录mysql/bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密...2015-11-08
  • Navicat for MySQL 11注册码\激活码汇总

    Navicat for MySQL注册码用来激活 Navicat for MySQL 软件,只要拥有 Navicat 注册码就能激活相应的 Navicat 产品。这篇文章主要介绍了Navicat for MySQL 11注册码\激活码汇总,需要的朋友可以参考下...2020-11-23
  • mysql IS NULL使用索引案例讲解

    这篇文章主要介绍了mysql IS NULL使用索引案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...2021-08-14
  • 基于PostgreSQL和mysql数据类型对比兼容

    这篇文章主要介绍了基于PostgreSQL和mysql数据类型对比兼容,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-12-25
  • Mysql中 show table status 获取表信息的方法

    这篇文章主要介绍了Mysql中 show table status 获取表信息的方法的相关资料,需要的朋友可以参考下...2016-03-12
  • 20分钟MySQL基础入门

    这篇文章主要为大家分享了20分钟MySQL基础入门教程,快速掌握MySQL基础知识,真正了解MySQL,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-12-02
  • RHEL6.5编译安装MySQL5.6.26教程

    一、准备编译环境,安装所需依赖包yum groupinstall 'Development' -y yum install openssl openssl-devel zlib zlib-devel -y yum install readline-devel pcre-devel ncurses-devel bison-devel cmake -y二、编译安...2015-10-21
  • mongodb与mysql命令详细对比

    传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。MongoDB对于关系型数据库里的表,但是集合中没有列、行和关...2013-09-11
  • MySQL远程连接不上的解决方法

    这篇文章主要为大家详细介绍了MySQL远程连接不上的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-01-26