Naviact无法连接到MySQL数据库

2023-10-27

无法连接到MySQL数据库

省流版:

服务器没有开MySQL的端口。

之所以还要写一篇文章,是因为开端口只需要一分钟,而根据各种现象与线索推断出没有开端口则需要三个小时。

问题背景

在服务器上安装了Linux虚拟机,然后在虚拟机上安装MySQL。

之前一直都是用xshell操纵MySQL,今天想使用Navicat连接。

my数据库

MySQL的数据库如下:
数据库信息

共两个数据库,一个myDB1,一个university数据库(其余为MySQL自带的数据库)

此时我MySQL里面的用户如图:

在这里插入图片描述

可以看到里面有三个用户,root,peng和user_for_db1。其中user_for_db1是之前建立的,根据名字可知,为user_for_db1赋予了myDB1数据库的所有权限,同时为peng用户赋予所有数据库的所有访问权限。

问题

在Navicat中,建立了两个连接,如图:

连接1:

连接1
在这里插入图片描述

可以看到连接成功,并且由于设置了访问权限,所以只有myDB1一个数据库。这个连接是很久之前建立的,当时忘记怎么连接的了(果然还是要养成记录的好习惯)。

但是当用另一个用户连接的时候,却提醒连接出错,如图:
在这里插入图片描述
在这里插入图片描述

另外也不是SSH连接的错误,因为都不行,这里只是没放截图。

请教大佬

在向大佬请教过程中,并没有直接问为什么连不上,因为很多背景会导致共同的问题,上来直接问往往讲不清背景。我先是注意到在XShell中,连接的端口是22,协议是SSH,而Navicat中的端口是3306,因此就先问了一下这两个端口的不同。

大佬回答如下:

22这个端口,是用SSH连接服务器的默认端口;
3306这个端口,是MySQL的默认端口。

当时还并没有十分清楚,大佬又来了一句:

3306可以改的
开启MySQL时候换个端口就行

听了这句话之后,我也排除了端口冲突的问题,因为这两个连接并没有同时打开。

之后向大佬讲了一下背景,也就是上文的内容,大佬听完后,也是不太清楚。。。。

峰回路转

其实一开始就感觉这个问题有点奇怪,所以并没有很失望,不过看着大佬跟我说的那句:3306可以改的,我陷入了沉思。

MySQL怎么知道你把端口改了呢?

突然又想到最初设置服务器的时候,在安全组里面设置过一些端口

于是问了一下大佬要不要在服务器上添加允许这个新端口

果不其然,需要在服务器上设置。

然后,就想着在服务器上添加一个新端口,尝试用新端口连接。

然后震惊地发现,我没有给MySQL开端口!!
在这里插入图片描述

发现这点后,我并没有立刻开放端口,而是开始思索,我之前怎么登录的呢?

看着被允许的几个端口,尤其是22那个端口,事情逐渐明朗了起来

我开了22的端口,而xshell也是用22连接的,也就是说,我用xshell连接,相当于是远程桌面

我是先通过22端口,连接到远程桌面,也就相当于登录到服务器这个计算机,然后在进入到mysql,这时的MySQL就相当于是远程计算机的本地应用了,所以不需要3306这个端口。

但是我一开始怎么连接成功的呢?

就是这个

在这里插入图片描述

说实话想了好久也没想清楚,目前的推断是,在上图的安全组中(图7),有三个内网IP,有可能服务器认为我这个连接属于内网连接,所以可以通过(只是推测,具体原因不清楚)。

收尾

开放端口后,确实连接成功了,但是发现没有任何数据库信息,于是通过网上查阅资料,知道是需要如下操作,简单记录一下:

右键——编辑连接——数据库——选择对应的数据库(可能需要勾选使用自定义数据库列表)

总结

  • 通过这次的问题,我明白了端口的重要性,端口和IP地址一样都是用来标识计算机的,通过这些标识赋予不同计算机的访问权限。
  • 熟悉了一些关于用户与数据库授权的知识,只有授权后才能在Navicat中显示。
  • 进一步感受到了如何正确的问问题:
    • 自己必须先尝试一些方案,不要遇到问题就直接问,先自己尝试解决。
    • 同时要将对方代入到你的场景中,描述清楚背景是成功的一半。
    • 在问的过程中,也要不断给出自己的思路,自己多加思考,因为没人有义务无偿且天然地向你解答。
    • 即使到最后,这个解决方案,包括添加新端口与两个端口的差别,都是我自己引导着大佬去解答的。大佬并没有直接给出方案(可能还是由于描述不清,到最后他才知道我之前是用xShell登录的),自己才是最清楚历史原因的人,一定要多思考。
  • 添加一个端口只需要一分钟,但知道为什么添加,却需要三个小时。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Naviact无法连接到MySQL数据库 的相关文章

  • 显示我与引座员有共同点的条目,按好恶分开

    我有一个类似于 Facebook 上的页面系统 每个用户都可以喜欢或什至不喜欢某个页面 status 1是一个喜欢 0是一种不喜欢 这是我的查询 SELECT p title de de p keyname l status CASE WH
  • 通过执行本机操作系统的命令(例如curl)通过MySQL调用HTTP GET请求

    我使用的是在 32 位 Microsoft Windows XP 专业版 2002 Service Pack 3 上运行的 MySQL 5 6 11 我安装了MySQLsys exec https github com mysqludf l
  • MySQL数据文件不会收缩

    随着时间的推移 我的 MySQL 数据库 ibdata1 文件增长到大约 32GB 最近我从数据库中删除了大约 10GB 的数据 并重新启动了 mysql 以达到更好的效果 但文件不会缩小 有什么办法可以减小这个文件的大小 无论删除多少数据
  • Symfony 2 中的连接表

    我刚刚开始在 Symfony 2 中进行面向对象编程 并且在连接 mysql 表时遇到问题 我有两张桌子 kommuner id 名称 容量 活动 id 姓名 kommune id 如何在实体文件中加入这些表 这是我在 DefaultCon
  • 使用 PHP 安全连接 MySQL 的最佳方法[重复]

    这个问题在这里已经有答案了 我想了解一下你们认为使用 PHP 连接到 MySQL 数据库的最安全方法 目前我正在做的方式是一个实用程序 PHP 文件 我将其包含在所有其他 PHP 文件的顶部 实用程序 PHP 文件是这样的 有什么建议么 建
  • $http.get 和 method:'GET' 之间的区别

    我正在使用 Spring Data REST 并有一个 MySQL DB 来管理我的数据 我使用 AngularJS 编写了第一页 并希望从数据库中获取数据 为了获取我的数据 我知道有两种不同的方式 http get http myURL
  • MYSQL限制用户访问information_schema

    我有一个MySQL服务器 服务器版本 5 1 68 community MySQL客户端版本 5 0 51a 有没有办法限制所有用户对 information schema 的所有访问 发生的情况是 一些客户站点经常通过 SQL 注入遭到黑
  • 用户消息系统

    我正在考虑创建一个用户消息系统 类似于 Facebook 我想知道的本质上是表结构应该是什么样子 我的要求如下 消息在用户之间交换 发送者可以选择多个用户来发送消息 消息以线程式布局显示 作为一对一对话 即每个收件人的回复将出现在其自己的线
  • 禁止 MySQL/MariaDB 中的存储过程使用 NULL 参数

    我可以指定表列不为空 但如何使存储过程或函数仅与非空参数兼容 在参数名称后添加 NOT NULL 不起作用 您需要自己验证传递的参数值 如果您使用 MySQL 5 5 及更高版本 您可以使用SIGNAL https dev mysql co
  • Rails 3、mysql/mysql2 将某些检索到的字符串误解为 ASCII-8BIT

    这个问题最初是常见的 字符编码不兼容 ASCII 8BIT 和 UTF 8 问题 但事实是not我在问什么 相反 我发现发生此问题是因为数据库的某些字段在检索时被标记为 ASCII 8BIT 而大多数字段正确显示为 UTF 8 例如 在包含
  • 私人消息系统。列出每个对话的最后一条消息

    可以说这是数据库结构 SELECT FROM pms where id to 1 or id from 1 这将返回他已接收或发送的所有消息 那么我如何检索最后一条消息each用户1可能进行的对话 PD 当两个用户之间存在一条或多条消息时
  • 将多个文件上传到服务器并

    我的第一篇文章所以要温柔 我尝试过搜索此内容 并且有很多类似的帖子 但我似乎找不到任何与我的问题完全相似的内容 而且我已经在这个问题上花了几个小时了 我正在用 PHP 5 3 和 MySQL 构建一个系统 部分功能是要求用户根据之前的一些选
  • 如何扩展 Joomla!到我的自定义 PHP 文件

    我有一个我创建的 php 文件 我想扩展所有的 Joomla 类到该文件 或者我至少希望能够使用 Joomla 的类来访问我的 PHP 文件中的数据库 我怎样才能以这种方式扩展功能 提前致谢 将这些行放在 php 文件的顶部 define
  • MYSQL通过两个键内连接两个表

    我正在执行查询以返回存储在 sb carts 表中的所有用户购物车 存储在 sb carts 中的产品信息通过两个键 Product sku 和 school id 引用 它需要参考两者来返回具有独特库存水平等的独特产品 当我执行以下查询时
  • MYSQL计算计数平均值

    我有一个简单的查询 我想要一个平均值 这就是现在的样子 我想知道每个 Opname OpnameID 的平均计数 SELECT Opname OpnameID count as behandelingen per opname FROM b
  • MySQL 将字符串视为整数

    我的申请有很大的问题 在开始之前我会红色这些主题Mysql 将 varchar 视为 int bug https stackoverflow com questions 17843329 mysql treating varchar as
  • docker-compose 无法等待 mysql 数据库

    我在尝试获取 docker compose 脚本来启动 mysql 数据库和 Django 项目时遇到了真正的问题 但让 Django 项目等待 mysql 数据库准备就绪 我有两个文件 一个 Dockerfile 和一个 docker c
  • 使用准备好的语句的 SQL ORDER BY

    我已经尝试了该代码的所有不同类型的变体 但无法使其工作 任何人都可以指出我正确的方向吗 if isset GET s And isset GET o if strip tags htmlspecialchars GET s s sortin
  • Laravel 4 中如何知道查询是否失败?

    我将 Laravel 4 与 MySQL 结合使用 我想知道如何控制在数据库中插入 更新或删除记录时可能出现的错误 例如 如果我进行如下更新 DB table user gt where id id gt update userdata 我
  • 使用git在测试和生产环境之间同步数据库

    我正在尝试在 php mysql 应用程序的开发过程中实现 git 到目前为止 我已经设置了 git repos 并且我们正在使用本地计算机进行测试 并且我们成功地将其用于文件 但我真的不知道如何处理数据库 服务器上有一个 cron 脚本

随机推荐

  • python中判断类型函数isinstance()

    函数isinstance 可以判断一个变量的类型 既可以用在Python内置的数据类型如str list dict 也可以用在我们自定义的类 它们本质上都是数据类型 假设有如下的 Person Man和 Woman的定义及继承关系如下 cl
  • gradle 任务依赖实现复制任务。

    近期遇到一个需求 由于很少研究gradle相关 所以在实现上卡了一阵子 现已基本实现需求 回过头来记录一下 需求 项目中接入腾讯bugly 使用其热更新功能 由于热更新目前不支持自定义补丁包的生成路径 因此会产生一个问题就是 补丁包生成后位
  • HarmonyOS开发:走进静态共享包的依赖与使用

    前言 在上一篇 我们进行了动态共享包的开发和使用 由于动态共享包有一定的局限性 比如 调用共享包资源还得要通过工具类进行调用 再比如仅用于应用内部代码 资源的共享 如果我想要开源 以远程依赖的方式给任何一个想要用的人进行使用 动态共享包就无
  • 阿里开源的缓存框架JetCache

    之前一直在用Spring Cache进行接口数据的缓存 主要是Spring Cache在对具体key缓存失效时间的设置不是很方法 还要自己去扩展 无意中发现了阿里的JetCache 大部分的需求都能满足 并且有一些很实用的功能 今天给大家介
  • activate : 无法将“activate”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 所在位置 行:1 字符: 1

    在pycharm里面错误展示 无法激活虚拟环境 解决方法 以管理员身份运行 PowerShell 并输入 set executionpolicy remotesigned 再输入 y 如图 输入完后重新打开pycharm 再次输入 acti
  • SpringBoot项目整合Mybatis时Mapper.xml文件的存放位置

    目录 方式一 放在与Mapper接口同级目录 方式二 在resources创建Mapper接口同名文件夹用来存放Mapper xml文件 方式三 在resources目录下创建mapper文件夹存放mapper xml 推荐 方式一 放在与
  • git 签出(恢复)指定文件

    在项目开发中 偶尔会因为误删文件或其他原因需要从git仓库中恢复某些文件 此篇文章将介绍如何通过git从历史提交记录 分支记录恢复指定文件 1 git checkout 说明 使用git checkout除了可以切换分支外 还可以签出指定文
  • Elasticsearch Java High Level REST Client(Exists API)

    Exists API 如果文档存在 则existsAPI返回true 否则返回false Exists请求 它就像Get API一样使用GetRequest 支持所有可选参数 由于exists 只返回true或false 我们建议关闭获取
  • 目标检测之Yolov3与Anchor-Free

    原文 目标检测之RCNN Yolo SSD RetinaNet与Anchor Free dagongji10的博客 CSDN博客 2 2 Yolo v3 2018 Yolo v3 论文比 Yolo v2 还要随意 具体优化内容主要有 bbo
  • 用python绘制曼彻斯特编码等八种常见数据编码方式的波形图

    用python绘制八种数据编码方式的波形图 2020春季北京航空航天大学计算机学院物联网引论课程作业 介绍八种常见数据编码方式并实践画出波形图 本文使用了python中的二维图像模块matplotlib 博主在信号与通信原理方面功底不深 如
  • deepin的踩坑问题与解决方案,以及使用分享(持续更新)

    笔者目前的电脑环境是Redmibook 14 AMD的锐龙版 R5 3700U 只有集成显卡 不同换环境下问题原因不一定相同 如驱动等兼容性问题 可以借鉴解决思路 但更多问题还是具有共性 Q1 u盘安装的时候 卡在蓝色背景图 无安装程序启动
  • e3 服务器虚拟机,e3 虚拟机

    e3 虚拟机 内容精选 换一换 Hypervisor能实现同一物理机上不同虚拟机之间的资源隔离 避免虚拟机之间的数据窃取或恶意攻击 保证虚拟机的资源使用不受周边虚拟机的影响 用户使用虚拟机时 仅能访问属于自己的虚拟机的资源 如硬件 软件和数
  • 【Ethernet】以太网卡LAN8720A分析和使用

    文章目录 1 LAN8720A简介 2 PHYAD 0 PHY地址配置 3 MODE 2 0 Mode配置 4 nINTSEL nINT REFCLKO配置 5 REGOFF 配置内部 1 2V电压源 6 SMI MDC MDIO 总线接口
  • android studio jdk se 8,java - Is JDK 1.8 fully supported by Android Studio? - Stack Overflow

    Actually you get all sorts of crazy Gradle errors when trying to build Android Studio projects with Java 8 like 2016 04
  • C++避坑——most vexing parse问题

    1 坑 的问题是什么 先看一段代码 class Functor public void operator std cout lt lt 我是线程的初始函数 lt lt std endl int main std thread t Funct
  • 第六章:认识Java的API-使用Java函数库

    该系列文章系个人读书笔记及总结性内容 任何组织和个人不得转载进行商业活动 第六章 认识Java的API 使用Java函数库 Java内置有数百个类 如果你知道如何从统称Java API的Java的函数库中查找所需功能 那就不用再造轮子了 核
  • 检测属性

    点上面关注免费学习前端知识 JavaScript对象可以看做属性的集合 我们经常会检测集合中成员的所属关系 判断某个属性是否存在于某个对象中 可以通过in运算符 hasOwnPreperty 和propertyIsEnumerable 方法
  • HTML常见标签总结

    目录 1 标题标签 2 段落标签 3 字体修饰标签 4 图片标签 5 超链接标签 6 表格标签 7 列表标签 8 表单标签 9 下拉菜单 10 多行文本框 1 标题标签 一级标题是 h1 h1 中间填上标题的内容 一共可以设置六级标题 数字
  • 【Git笔记】添加暂存区与提交本地库

    本文以提交 hello txt 为例 在开始之前普及一个快捷方式 在 Linux 中 文本复制为 esc gt yy 粘贴为 d 查看本地库状态 git status 当文本只停留在工作区时 本地状态如下 添加暂存区 git add hel
  • Naviact无法连接到MySQL数据库

    无法连接到MySQL数据库 省流版 服务器没有开MySQL的端口 之所以还要写一篇文章 是因为开端口只需要一分钟 而根据各种现象与线索推断出没有开端口则需要三个小时 问题背景 在服务器上安装了Linux虚拟机 然后在虚拟机上安装MySQL