解决在window中远程连接Linux下的MySQL

2023-05-16

前言

在实际开发中,我们连接数据库肯定是远程连接的,那这是如何设置的呢,让我们来探究一下。

文章目录

  • 前言
  • 1、问题
  • 2、确认网络
  • 3、关闭防火墙或者开放端口
  • 4、修改Linux下的配置
  • 5、测试
  • 总结


准备条件:一台装有MySQL数据库的虚拟机,一台装有MySQL数据库的window

1、问题

在用SQLyog或Navicat中配置远程连接Mysql数据库时遇到如下报错信息,这是由于Mysql配置了不支持远程连接引起的。
在这里插入图片描述

2、确认网络

在window上使用ping ip地址 保证网络畅通
例如:ping 192.168.1.150

开启window中的Telnet客户端

打开控制面板,选择小图标展示,点击程序和功能,再点击启用或关闭window功能
在这里插入图片描述
将Telnet客户端勾选上
在这里插入图片描述

3、关闭防火墙或者开放端口

想要连接Linux下的MySQL,需要关闭防火墙或者开放端口,选择其中一种方式即可

方式1:关闭防火墙

CentOS6指令:service iptables stop
CentOS7指定:systemctl stop firewalld.service

设置开机禁用防火墙:systemctl disable firewalld.service

方式2:开放端口

//查看开放的端口号
firewall-cmd --list-all

//设置开放的端口号
firewall-cmd --add-service=http --permanent
firewall-cmd --add-port=3306/tcp --permanent

//重启防火墙
firewall-cmd --reload

4、修改Linux下的配置

1、打开虚拟机,连接Linux下的MySQL,使用如下sql

use mysql;

select Host,User from user;

在这里插入图片描述可以看到root用户的当前主机配置信息为localhost。就代表着使用root用户那么只能本地连接数据库

修改Host为通配符%

Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。 user=root Host=localhost,表示只能通过本机客户端去访问。而 %是个 通配符 ,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果 Host=% ,表示所有IP都有连接权限。

注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置

update user set host = '%' where user ='root';

Host设置了“%”后便可以允许远程访问。
在这里插入图片描述
Host修改完成后记得执行flush privileges使配置立即生效:

flush privileges;

5、测试

  • 如果是 MySQL5.7 版本,接下来就可以使用SQLyog或者Navicat成功连接至MySQL了。
  • 如果是 MySQL8 版本,连接时还会出现如下问题:
    在这里插入图片描述
    配置新连接报错:错误号码 2058,分析是 mysql 密码加密方法变了

解决方法:Linux下 mysql -u root -p 登录你的 mysql 数据库,然后 执行这条SQL:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'abc123';

然后在重新配置SQLyog的连接,则可连接成功了,搞定收工。


总结

其实过程还是很简单的:

  • 首先检查本机是否能ping通虚拟机IP地址
  • 开启window中的Telnet客户端服务
  • 关闭Linux的防火墙(或者开放3306端口)
  • 修改Linux下MySQL的远程连接配置(记得立即刷新一下)
  • 最后如果是MySQL8.0再使用如上SQL设置MySQL即可成功~
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决在window中远程连接Linux下的MySQL 的相关文章

  • 我应该如何审核 MySQL 表中的更改(使用 MySQL 4)?

    我被要求审核 MySQL 表中的任何 所有更改 有谁知道有什么工具可以帮助我做到这一点 还是我需要编写自己的解决方案 如果我编写自己的审计 我最初的想法是制作一个单独的表并在 PHP 代码中构建一系列更改 类似 fieldname1 gt
  • 拉拉维尔; “SQLSTATE[HY000] [2002] 连接被拒绝”

    我在 OSX 主机上设置了 homestead 2 0 并使用 Sequel Pro 我可以进行迁移并确认数据已在Sequel Pro中迁移 因此看起来数据库连接没有问题 但是 一旦我尝试从 Laravel 4 2 应用程序获取数据 它就无
  • 为 java 项目创建安装

    我创建了一个 java 项目 它使用数据库来检索 编辑和保存数据 我使用 Netbeans 完成了该项目 现在我想在该项目之外创建一个安装 为此 我想包含与项目一起安装的数据库 我用来连接数据库的代码是 Class forName com
  • WPF 模式进度窗口

    如果这个问题已经被回答了很多次 我很抱歉 但我似乎找不到适合我的答案 我想创建一个模式窗口 在我的应用程序执行长时间运行的任务时显示各种进度消息 这些任务在单独的线程上运行 我能够在过程的不同阶段更新进度窗口上的文本 跨线程通信一切正常 问
  • 关闭主窗口时 WPF 应用程序不会关闭

    我习惯了在 Visual Studio 中进行 WinForms 编程 但我想尝试一下 WPF 我向我的项目添加了另一个窗口 名为 Window01 主窗口称为MainWindow 之前public MainWindow 构造函数我声明Wi
  • 删除重复的行并需要在mysql中保留所有行中的一个[重复]

    这个问题在这里已经有答案了 我想删除基于两列的重复行 但需要保留所有行 1 行 重复行可以多于两行 例如 ID NAME PHONE 1 NIL 1234 2 NIL 1234 3 NIL 1234 4 MES 5989 我想从上面 3 行
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • Linux 中的无缓冲 I/O

    我正在写入大量的数据 这些数据数周内都不会再次读取 由于我的程序运行 机器上的可用内存量 显示为 空闲 或 顶部 很快下降 我的内存量应用程序使用量不会增加 其他进程使用的内存量也不会增加 这让我相信内存正在被文件系统缓存消耗 因为我不打算
  • MySQL LIKE %string% 不够宽容。我还有什么可以用的吗?

    我有一位客户询问他们的搜索是否可以搜索公司名称 这些名称可以根据用户输入以多种格式进行搜索 例如数据库中存储的公司是 A J R Kelly Ltd 如果用户搜索 一个 J R Kelly 被发现 使用
  • 私人聊天系统MYSQL查询显示发送者/接收者的最后一条消息

    在这里我延伸一下我之前的问题 私人聊天系统MYSQL查询ORDERBY和GROUPBY https stackoverflow com questions 10929366 private chat system mysql query o
  • 跟踪 Linux 程序中活跃使用的内存

    我想跟踪各种程序在特定状态下接触了多少内存 例如 假设我有一个图形程序 最小化时 它可能会使用更少的内存 因为它不会重新绘制窗口 这需要读取图像和字体并执行大量库函数 这些对象仍然可以在内存中访问 但实际上并没有被使用 类似的工具top它们
  • 外键和索引

    我有 2 张桌子 products and 类别 每个类别有很多产品 一个产品可以属于多个类别 products product id int primary auto increment name unique etc 类别 catego
  • 通过特定分隔符删除字符串

    我的文件中有几列 其中第二列有 分隔符 我想删除第二列中的第一个 第三个和第四个字符串 并将第二个字符串留在该列中 但我有正常的分隔符空间 所以我不知道 input 22 16050075 A G 16050075 A G 22 16050
  • 应用程序无缘无故地被杀死。怀疑 BSS 高。如何调试呢?

    我已经在CentOs6 6中成功运行我的应用程序 最近 硬件 主板和内存 更新了 我的应用程序现在毫无理由地被杀死 root localhost PktBlaster PktBlaster Killed 文件和 ldd 输出 root lo
  • 是否可以将新表和旧表从触发器传递到 MySQL 中的过程中?

    是否可以将新表和旧表从触发器传递到 MySQL 中的过程中 我怀疑不会 因为没有过程接受的表这样的数据类型 有什么可能的解决方法吗 理想情况下它看起来像这样 CREATE TRIGGER Product log AFTER UPDATE O
  • Jenkins中找不到环境变量

    我想在詹金斯中设置很多变量 我试过把它们放进去 bashrc bash profile and profile of the jenkins用户 但 Jenkins 在构建发生时找不到它们 唯一有效的方法是将所有环境变量放入Jenkinsf
  • 如何在 HTML / Javascript 页面中插入 PHP 下拉列表

    好吧 这是我的第二篇文章 请接受我是一个完全的新手 愿意学习 花了很多时间在各个网站上寻找答案 而且我几乎已经到达了我需要到达的地方 至少在这一点上 我有一个网页 其中有许多 javascript 函数 这些函数一起使用 google 地图
  • 如何在 shell 脚本中并行运行多个实例以提高时间效率[重复]

    这个问题在这里已经有答案了 我正在使用 shell 脚本 它读取 16000 行的输入文件 运行该脚本需要8个多小时 我需要减少它 所以我将其划分为 8 个实例并读取数据 其中我使用 for 循环迭代 8 个文件 并在其中使用 while
  • 如何在 codeigniter 查询中使用 FIND_IN_SET?

    array array classesID gt 6 this gt db gt select gt from this gt table name gt where array gt order by this gt order by q
  • 当复选框条件更改时,如何使用ajax更新mysql数据库?

    我有一个在客户端按行显示的文章表 每篇文章都有一个唯一的 ID 并包含一个复选框以指示该文章是否被选中为收藏夹 如果它是最喜欢的 则该复选框已被选中 如果没有 则未选中 现在 如果特定于每一行的复选框条件发生变化 我需要 js 或 jque

随机推荐

  • kubectl管理与项目的完整周期

    目录 一 kubectl管理二 项目的完整周期2 1 创建项目2 2 项目的发布2 3 更新版本2 4 版本回滚2 5 删除资源 一 kubectl管理 Kubectl是管理k8s集群的命令行工具 xff0c 通过生成的json格式传递给a
  • 学习记录:Ubuntu系统安装远程控制软件teamviewer

    一 teamviewer安装包下载 1 下载官方地址 xff1a https www teamviewer cn cn download linux 2 百度网盘下载地址 xff1a 链接 xff1a https pan baidu com
  • 结构体的内存对齐

    之前我们都知道int类型大小是4个字节 xff0c char类型为1个字节 xff0c double为8个字节等等 但是结构体是由很多类型组成的 xff0c 那么它的大小是多少呢 xff1f 是所有类型相加之和还是另有算法 xff1f 接下
  • (linux-x86-arm)银河麒麟V10安装ToDesk远程控制

    摘要 xff08 linux x86 xff09 银河麒麟V10安装ToDesk远程控制 xff08 类似向日葵 xff0c 但是不限速 xff09 xff0c 同理UOS和其他操作系统操作一样 原文地址 xff1a xff08 linux
  • ftp550权限问题

    很多人在使用别人服务器上传ftp的时候都是没什么问题的 xff0c 但是如果遇到了自己或公司内部的服务器就可能出现ftp权限550的问题 问题 xff1a 为什么会出现550 xff1f 因为你的权限出现问题 xff0c 可能的问题就是服务
  • ABAQUS几何非线性问题:薄板大变形(如何定义材料方向)

    ABAQUS几何非线性问题 xff1a 薄板大变形 在本案例中 xff0c 笔者将从几何非线性角度分析一个线性材料的薄板在发生大尺度变形情况下的非线性问题 另外向大家简单介绍ABAQUS在求解非线性问题时所采用的方法 xff0c 以及分析步
  • you-get库、you-get 下载视频失败

    报错描述 xff1a 正常输入指令下载视频 xff0c 终端提示 some thiing went wrong 排查错误 xff1a 1 排查python环境版本过低 xff0c 截止目前you get 支持Python 3 7 4 or
  • Kafka性能测试工具

    简介 Kafka本身自带了性能测试的脚本 xff0c 可以测试发送端和消费端的速度 xff0c 分别为 xff1a kafka producer perf test sh kafka consumer perf test sh 这两个脚本可
  • 如何在 Windows 安装轻量级虚拟机工具 Multipass

    文章目录 背景下载安装启动 Multipass1 点击菜单栏 Multipass 启动2 桌面右小角右键点击 Multipass 图标 xff0c 点击 Open Shell3 等待虚拟机安装完毕4 测试外网连通 相关命令1 查看 Mult
  • 社区版 IntelliJ IDEA 如何创建Spring boot项目

    背景 社区版的 IntelliJ IDEA 虽然没有 Spring initializr 插件 xff0c 但是官方仍然提供了一个友好方式给予我们快捷的创建Spring boot项目 创建过程 1 打开在线的 spring initiali
  • PyFlink 安装和使用

    环境准备 1 操作系统 Ubuntu 20 04 笔者使用 Multipass 安装 Ubuntu 虚拟机 参考 xff1a 如何在 MacOS 安装轻量级虚拟机工具 Multipass 如何在 Windows 安装轻量级虚拟机工具 Mul
  • Flink CDC 系列(7)—— 从 MySQL 到 ElasticSearch

    Flink CDC 系列文章 xff1a Flink CDC 系列 xff08 1 xff09 什么是 Flink CDC Flink CDC 系列 xff08 2 xff09 Flink CDC 源码编译 Flink CDC 系列 xff
  • Apache Doris 系列: 基础篇-Flink SQL写入Doris

    简介 本文介绍 Flink SQL如何流式写入 Apache Doris xff0c 分为一下几个部分 xff1a Flink Doris connectorDoris FE 节点配置Flink SQL 写 Doris Flink Dori
  • Apache Doris 系列: 基础篇-单独更新一列

    数据模型选择 数据表使用 Aggregate 聚合模型 需要更新的字段使用关键字 REPLACE IF NOT NULL 举例 建表 span class token keyword CREATE span span class token
  • SeaweedFS学习笔记:调优

    文章目录 1 使用 LevelDB 作为索引的存储2 预先分配volume file的磁盘空间3 提高写并发4 提供读并发5 增加更多的硬盘驱动器6 提高用户打开文件的限制数7 内存消耗7 1 内存中的索引7 2 并发读 8 当网络不稳定时
  • 树莓派3b+简单入门

    树莓派3B 43 简单入门 panday 博客园 树莓派3B 43 远程登录详细配置方法 落晓o的博客 CSDN博客 树莓派ssh配置 1 外观和基本情况 树莓派3b 43 开箱测试 树莓派3B 43 开箱测试 树莓派入门教程 微雪课堂 刚
  • SeaweedFS学习笔记:Volume 管理

    在一个大型的集群中 xff0c 增加 下线 替换Volume服务器都是很常见的操作 这些操作会带来volume副本的丢失 xff0c 或者Volume副本数量的不平衡 1 修复丢失的Volume 当某个Volume server挂掉时 xf
  • SeaweedFS学习笔记:S3-API

    文章目录 1 实现机制2 支持更多的桶2 1 Volume的最大size调小2 2 限制Volume的增长速度 3 启动S3 gateway服务4 通过s3cmd操作SeaweedFS4 1 s3cmd的安装4 2 配置4 3 s3cmd使
  • C语言:利用顺序栈判断一个字符是否为回文

    C语言 xff0c 利用顺序栈判断一个字符是否为回文 include span class token generics function span class token punctuation lt span stdio span cl
  • 解决在window中远程连接Linux下的MySQL

    前言 在实际开发中 xff0c 我们连接数据库肯定是远程连接的 xff0c 那这是如何设置的呢 xff0c 让我们来探究一下 文章目录 前言1 问题2 确认网络3 关闭防火墙或者开放端口4 修改Linux下的配置5 测试总结 准备条件 xf