Navicat连接linux虚拟机上的MySQL可能遇到的问题以及如何排查

这篇具有很好参考价值的文章主要介绍了Navicat连接linux虚拟机上的MySQL可能遇到的问题以及如何排查。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为什么写这篇文章

很大一部分原因是因为网上找不到比内容较全的文章作为一个小白解决所面临的问题

关于Navicat连接Linux上的MySQL为什么出现以下报错

问题描述

虚拟机myqs链接navicat,linux,mysql,运维,数据库
这个报错很有可能是你的linux的防火墙不允许你连接到MySQL服务器导致的具体怎么排查,后面会详细说明。
虚拟机myqs链接navicat,linux,mysql,运维,数据库
这个报错有可能是以下原因
1、MySQL 服务器没有在你指定的 IP 地址 ‘192.168.111.128’ 上运行。
2、MySQL 服务器正在运行,但防火墙或网络设置阻止了你的连接请求。
3、在 Navicat 中提供的 MySQL 用户名、密码或端口号不正确。
请注意:这里的(using password:YES)指的是你是否填写了密码而不是你的密码是正确的,即使你填写了错误的密码,他还是会报这个错误。


如何排查问题出在哪:

对于图一,首先我们可以尝试Windows上通过命令行是否能够ping通linux的ip地址

虚拟机myqs链接navicat,linux,mysql,运维,数据库

如果没有ping通先考虑自己是否选对了linux的ip地址,查看linux的ip地址可以打开终端输入ifconfig或者使用ip addr show查看,一般是eth33或者eth0,一定要选对ip地址,不要以为第一个就是ip地址,因为有些同学可能在linux上安装了doker环境等导致第一个并不是Linux的ip地址。
虚拟机myqs链接navicat,linux,mysql,运维,数据库
虚拟机myqs链接navicat,linux,mysql,运维,数据库
同时需要注意的是,对于虚拟机centos7版本linux的网卡有两种
虚拟机myqs链接navicat,linux,mysql,运维,数据库

这两种会对应两种不同的ip地址
虚拟机myqs链接navicat,linux,mysql,运维,数据库
如果你的虚拟机需要连接到Internet,你可能会使用VMnet8(通常配置为NAT模式)。而VMnet1通常用于虚拟机之间的仅主机通信。

值得提一嘴的是,我一开始一直以为是本机IP与Linux的mysql进行连接,直到我发现了图二的报错中root用户对应的host地址是192.168.44.1,而且如果你是连接的校园网,那么你的ip地址很有可能是局域网ip而不是你的公网ip地址,所以我在配置mysql服务器用户的时候一直使用的就是本机的ip地址,而不是根据报错改的,因为图一报错让我查询到了很多不相关的东西,不知道怎么排查错误乱改,导致明明很简单的东西却复杂化了。
所以说这就是为什么当你试图解决一个你不理解的问题时,复杂化就产生了。QAQ

当这两个都没有什么问题,你还是有图一的报错时,你可以配置防火墙允许其他ip访问你的mysql服务器端口(默认是3306端口),即防火墙放开mysql端口(默认为3306).
在Linux系统中,有两种主要的防火墙工具,分别是iptables和firewalld。在较新的Linux发行版中,如CentOS 7及以上版本,默认使用的是firewalld的防火墙,而不是iptables。
这里以firewalld为例子,iptables防火墙操作也是类似的这里不做详细说明。

在firewalld防火墙上允许MySQL服务器的3306端口供外部访问,你可以按照以下步骤进行操作:

  1. 首先,确保你已经登录到Linux服务器上,并且具有管理员权限。

  2. 打开终端或命令行界面。

  3. 输入以下命令以允许3306端口通过防火墙:

sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload

当你的图一报错解决后出现了图二的报错,那么你可以先登录你的mysql查看,在你使用登录命令时可能会出先报错,因为你的权限不够,如图
虚拟机myqs链接navicat,linux,mysql,运维,数据库
可以使用su命令提高权限至超级管理员,或者在mysql -u “username”-p 命令前加sudo提高命令的权限来解决这个问题,“username”是选择登录的mysql用户名。
虚拟机myqs链接navicat,linux,mysql,运维,数据库

登陆后可以使用如下语句查看你的mysql上的用户名及主机(host)地址

	SELECT user, host FROM mysql.user;

虚拟机myqs链接navicat,linux,mysql,运维,数据库
默认应该只有下面四个,我的是添加了对应虚拟机两种不同状态下的用户及主机
如果只有下面四个,那么你的mysql只能本地访问,Navicat上根本找不到对应的用户
,就会报图二的错误,其次就是输错了密码或则用户名也会报图二错误。

那么应该如何添加相关用户,如果你的MySQL是8.0及以后的版本。
你可以使用命令CREATE USER创建用户,然后使用ALTER USER命令设置密码,最后使用GRANT命令赋予权限
以图二报错的用户名为root,ip地址为192.168.44.1为例

CREATE USER 'root'@'192.168.44.1’;
ALTER USER 'root' @'192.168.44.1' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root' @'192.168.44.1';
FLUSH PRIVILEGES;

注意这里的password需要你自己输入相关密码,我这里就用password代替了。
根据图二的报错添加mysql的用户来供windows访问,就能解决问题了。
虚拟机myqs链接navicat,linux,mysql,运维,数据库
希望这篇文章能对你有所帮助,确实写文章很花时间,这也应该是很多人为什么遇到问题花了很长时间解决,不会把经验分享出来的一个原因。文章来源地址https://www.toymoban.com/news/detail-787560.html

到了这里,关于Navicat连接linux虚拟机上的MySQL可能遇到的问题以及如何排查的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 虚拟机使用docker安装MySql出现的问题,Navicat连不上MySql

    文章目录 一、问题引入 二、问题分析  三、问题解决  ​四、总结 今天是学习谷粒商城的第一天,既然是第一天,肯定就是先对项目先有个基本的了解,比如是项目所用到的技术栈,项目整体的架构等,还对分布式的相关概念简单说了一下。 接下来来就是搭建环境了,与以

    2024年02月07日
    浏览(41)
  • Navicat连接MySQL教程及常见问题解决方法

    “Navicat”是一套可创建多个连接的数据库管理工具,用以方便管理不同类型的数据库,Navicat 的功能足以满足专业开发人员的所有需求,对数据库服务器初学者来说又简单易操作。且Navicat 的用户界面设计良好应用广泛。 目录 一、检查MySQL并使Navicat连接 (1)检查安装环境

    2024年02月07日
    浏览(30)
  • 【安装】从VMware虚拟机到Centos,到FinalShell连接虚拟机,到Centos中安装docker,用Navicat Premium连接Centos中的docker中的mysql

    安装VMware虚拟机,安装Centos,FinalShell连接虚拟机;在Centos中安装docker,下载mysql的docker,暴露端口;用Navicat Premium连接Centos中的docker中的mysql,进行增删改查 下载Centos7的网址: 使用默认设置 选择稍后安装 选择Linux系统,选择安装版本,这里选Centos,可以按需选择; 安装位置

    2024年02月02日
    浏览(30)
  • 【Navicat】win 10 / win 11:Navicat 15 安装完整教程(navicat 连接 mysql 出现 2059 报错问题解决)

    目录 一、Navicat 连接 mysql 出现 2059 报错问题解决 二、Navicat 15 的下载  三、Navicat 15 的安装 四、Navicat 15 的使用 之前使用的是完整版本 navicat 12,但是随着 MySQL 的升级,再连接 MySQL 时,navicat 12 会出现报错 2059 报错,为了解决此报错需要使用 navicat 15 或者 16 ! 错误代码

    2024年02月06日
    浏览(37)
  • 【Linux install】Ubuntu和win双系统安装及可能遇到的所有问题

    本文介绍了在windows环境下从零开始安装Ubuntu系统的方法,并提供了卸载Ubuntu系统的步骤,还介绍了一些在Ubuntu系统下查找、安装、卸载软件的方法。 先下载一下Ubuntu系统映像。官网下载得比较慢,可以去其他镜像源网站下载比如清华源。下载好的镜像是 iso 后缀。 随便准备

    2024年01月21日
    浏览(36)
  • 外部navicat无法连接mysql数据库的问题原因及解决方案

    问题起因是这样:在linux操作中的docker中部署了一个数据库,数据库启动之后,端口也映射了(创建容器时用 -p 30036:3306进行的映射),但是在外不想使用navicat连接时,怎么都连不上,本人遇到的问题如下 一、端口虽然映射了,但是服务器上的30036端口并未对外开放,因此要先开

    2024年02月07日
    浏览(41)
  • 记录JDBC连接MySQL数据库时遇到的问题

    记录使用 JDBC连接数据库的时候遇到的问题 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 可以参考这篇 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 博主总结的很全,就不赘述了~ com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet successfully received from the

    2024年02月10日
    浏览(43)
  • 【MySql】Navicat 连接数据库出现1251 - Client does not support authentication protocol ...... 问题的解决方法

    Navicat 连接 mysql,连接时出现问题:1251 client does not support authentication protocol requested by server… 再次安装MySQL后,使用 Navicat 或者 MySQL yog都会出现上面这个异常。 其实这是一个简单的权限与安全问题,只需要在 MySQL Shell 中输入两行命令就可以解决问题啦。 1、以管理员身份运行

    2024年02月09日
    浏览(51)
  • Django后端开发——mysql数据库连接遇到的问题及解决

    stackflow帖子:https://stackoverflow.com/questions/39281594/error-1698-28000-access-denied-for-user-rootlocalhost 报错: 数据库拒绝root用户的连接 settings.py中关于数据库的配置: 可以看到root用户的密码为123456 但是在mysql数据库里面查看用户信息,root的密码为空 这样的不匹配导致连接失败 之前尝试

    2024年02月20日
    浏览(48)
  • mysql - navicat连接数据库报错:1130 - Host *** is not allowed to connect to this MySQL server 解决(解决mysql报错问题

    使用navicat软件远程连接mysql时,软件提示弹框并且报错:1130 - Host x is not allowed to connect to this MySQL server,详细完美的解决方法, 很多教程都无法解决,本文可搞定。 其实,

    2024年02月19日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包