Windows 宿主机访问 VirtualBox 虚拟机中创建的 docker 容器中的 mysql8.0 的数据

一、场景需求

在开发环境中,一般使用 windows 系统进行开发,但需要在 linux 系统中创建运行 mysql8.0 的 docker 容器中进行测试(win10特定版本或win11才能安装 docker),为了方便还需要在 windows 系统中通过 SQLyog 工具查询 docker 容器中的数据库。

实际场景中未必遇到这种情况,这里仅记录自己实现的过程,以及踩过的坑!

 实现效果:

 二、实现思路

1、由于 linux 系统能更好的支持 docker 容器,所以在windows 安装 virtualBox 虚拟机,virtualBox 安装 linux(centos7版)系统,然后在 centos7 中创建 docker 容器,运行 mysql。

2、在window 上运行 SQLyog 客户端,查询 docker 容器中的数据库 

三、相关步骤及配置

1、安装 VirtualBox 及centos7 系统(略去具体安装方法)

centos7镜像可到阿里云镜像站获取:centos-7-isos-x86_64安装包下载_开源镜像站-阿里云

注意:

①最好使用DVD及Everything版本,否则可能会导致安装虚拟机增强功能失败。我最开始使用MInimal版本,增强功能始终安装不上,折腾了我一下午+一晚上。

②Centos7 安装完成后,将网络的连接方式改为【桥接网卡】,以便宿主机和虚拟机能相互ping通

2、Centos7 中安装 docker(略去具体安装方法)

可参考:Install Docker Engine on CentOS | Docker Docs

注意:官网给出的镜像路径是国外网址,拉取镜像经常超时,所以添加镜像仓库时,最好使用阿里云的镜像仓库路径

//docker 官网的镜像仓库路径
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo//国内用户需要添加阿里云的镜像仓库路径
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3、Centos7 中安装运行 Mysql8 的 docker 容器

以数据卷的形式创建及启动,以便保存 docker 容器中的数据。

docker run --name m1 -e MYSQL_ROOT_PASSWORD=1 -v /root/mysqlData:/var/lib/mysql --privileged=true -d -p 3306:3306 mysql//--name test 为容器指定一个名称(可替换test为自己喜欢的名称)。
//-e MYSQL_ROOT_PASSWORD=1 设置MySQL的root密码。你应该替换1为你的实际密码。
//-d 使容器在后台运行。
//mysql:latest 是要运行的MySQL镜像和标签(在这里是最新版本) 
//以数据卷的形式,创建并启动mysql容器,容器内的mysql数据不会因为容器的删除而被删除
//-v /root/mysqlData:/var/lib/mysql:将数据卷/root/mysqlData映射到容器的/var/lib/mysql目录
//-p 3306:3306:将容器的3306端口映射到主机的3306端口
//--privileged=true: 使容器内的root拥有真正的root权限,解决挂载目录没有权限的问题

 4、在 docker 容器中新增数据test及表user

5、在 Windows 系统中运行 SQLyog 客户端,连接 docker 容器中的数据库

注意:如果遇到以下错误,则是 SQLyog 版本和docker容器中的mysql版本不匹配的原因。

报错原因:客户端不支持服务器要求的认证协议。这可能是因为客户端版本太旧,不支持服务器所使用的新认证协议。

解决方法:升级客户端版本或创建用户时指定使用旧的认证协议

alter USER 'username'@'hostname' IDENTIFIED WITH mysql_native_password BY 'password';-- 将 username 改为 root
-- 将 hostname 改为 % 和 localhost
-- 将 password 改为数据库密码-- 具体sql语句如下:
alter USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1';
alter USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '1';-- 刷新权限
FLUSH PRIVILEGES;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/344955.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python轻量级嵌入式关系数据库之apsw使用详解

概要 在现代应用开发中,数据库是一个非常重要的组成部分。SQLite 是一个轻量级的嵌入式关系数据库管理系统,被广泛应用于各种应用程序中。APSW(Another Python SQLite Wrapper)库是一个专门用于访问 SQLite 数据库的 Python 包,它提供了 SQLite 所有的功能,并且比标准库…

【教学类-40-01】20240607类似MJ的免费AI绘画工具——文心一格与通义万相

背景需求: 风变的AI对话大师一年到期了,也没有看到续费的按钮。不能使用它写代码了。 MJ早就用完了,最后480次,我担心信息课题会用到它生图,所以不敢用。 最近探索其他类似MJ的免费出图工具 一、文心一格(…

各种空气能热泵安装图

空气能热泵安装图 循环式空气能热泵安装图 直热循环式空气能热泵安装图 泳池空气能热泵安装图 循环式水源热泵热安装系统原理图 直热循环式水源热泵安装系统图 空气水源热泵安装图

XUbuntu24.04之ch9344(usb转串口芯片)安装驱动(二百四十五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

如何将本地项目上传到GitHub

在软件开发过程中,将本地项目上传到GitHub是一个非常重要的步骤。它不仅可以帮助你备份代码,还可以让你与团队成员共享和协作开发。本文将详细介绍如何将本地项目上传到GitHub。 前提条件 已安装Git。如果还没有安装,请参考Git官网进行下载…

【linux】信号(三)

本章节将会围绕信号处理进行展开讲解 目录 回顾一下:历史问题:地址空间:键盘的输出如何被检测到:持续更新... 回顾一下: 信号处理也就是信号递达 我们说过递达时一种有3种行为 默认行为忽略行为自定义行为 历史问…

JVM之【字节码/Class文件/ClassFile 内容解析】

说在前面的话 字节码/Class文件/ClassFile 均为同一概念 Java语言:跨平台的语言(write once,run anywhere) 当Java源代码成功编译成字节码后,如果想在不同的平台上面运行,则无须再次编译这个优势不再那么吸引人了。Python、PHP、Perl、Ruby、Lisp等有…

28-LINUX--I/O复用-epoll

一.epoll概述 epoll 是 Linux 特有的 I/O 复用函数。它在实现和使用上与 select、poll 有很大差异。首 先,epoll 使用一组函数来完成任务,而不是单个函数。其次,epoll 把用户关心的文件描述 符上的事件放在内核里的一个事件表中。从而无需像…

xshell远程无法链接上VM的centos7

1、现象如下, 2.解决办法:查证后发现这个默认的设置为vmnet0 3.参考文章:Xshell连接不上虚拟机centos7_centos7的nat模式可以ping通网络,但是用xshell连不上是什么原因-CSDN博客

QT C++(QT控件 QPushButton,QRadioButton,QCheckBox)

文章目录 1. QPushButton 普通按钮2. QRadioButton 单选按钮3. QCheckBox 复选按钮 1. QPushButton 普通按钮 QPushButton中的重要属性 text:按钮中的文本icon:按钮的图标iconSize:按钮中图标的尺寸shortCut:按钮对应的快捷键&a…

STM32编程:实现LED灯闪烁(基于手写SDK的方式)

项目结构 stm32f10x.h 文件 //寄存器的值常常是芯片外设自动更改的,即使CPU没有执行程序,也有可能发生变化 //编译器有可能会对没有执行程序的变量进行优化//volatile表示易变的变量,防止编译器优化, #define __IO volati…

53.ReentrantLock原理

ReentrantLock使用 ReentrantLock 实现了Lock接口, 内置了Sync同步器继承了AbstractQueuedSynchronizer。 Sync是抽象类,有两个实现NonfairSync非公平,FairSync公平。 所以ReentrantLock有公平锁和非公平锁。默认是非公平锁。 public sta…

我的编程语言学习记录:一段不断探索的旅程

目录 我的编程语言学习记录:一段不断探索的旅程 1.引言 2.我的编程之旅开始 第一站:Python — 简洁之美 第二站:JavaScript — 网页的魔法 第三站:Java — 企业级的力量 3.学习过程中的挑战与克服 1.理解概念 3.记忆语法…

读书笔记:左耳听风

程序员如何用技术变现 我完全没有必要通过打工听人安排而活着,而是反过来通过在公司工作提高自己的技能,让自己可以更为独立和自由地生活。 因而,在工作当中,对于那些没什么技术含量的工作,我基本上就像是在学生时代那…

Java 的循环

Java 有三种循环&#xff1a;for&#xff0c;while&#xff0c;do while。 for 基本语法&#xff1a; for (循环变量初始化; 循环条件; 循环变量迭代){循环语句; }程序示例&#xff1a; public static void main(String[] args) {for (int i 0, j 0; i < 3; i, j--) {…

即时设计工具对决:Figma、Sketch与XD的优劣比较

最近几年&#xff0c;UI 设计工具出现了许多后起之秀&#xff0c;其中有四款更具代表性的UI设计软件&#xff1a;Sketch、Adobe XD、Figma 和 即时设计&#xff0c;这四个设计软件都有自己的优势。如果合作对您的UI设计过程至关重要&#xff0c;那么Figma 和 即时设计 它应该是…

FJSP:烟花算法(FWA)求解柔性作业车间调度问题(FJSP),提供MATLAB代码

一、烟花算法介绍 参考文献&#xff1a; Tan, Y. and Y. Zhu. Fireworks Algorithm for Optimization. in Advances in Swarm Intelligence. 2010. Berlin, Heidelberg: Springer Berlin Heidelberg. 二、烟花算法求解FJSP 2.1FJSP模型介绍 柔性作业车间调度问题(Flexible …

SpringBoot: 可执行jar的特殊逻辑

这一篇我们来看看Java代码怎么操作zip文件(jar文件)&#xff0c;然后SpringBoot的特殊处理&#xff0c;文章分为2部分 Zip API解释&#xff0c;看看我们工具箱里有哪些工具能用SpringBoot的特殊处理&#xff0c;看看SpringBoot Jar和普通Jar的不同 1. Zip API解释 1. ZipFil…

Burp Suite Professional 2024.5 (macOS, Linux, Windows) - Web 应用安全、测试和扫描

Burp Suite Professional 2024.5 (macOS, Linux, Windows) - Web 应用安全、测试和扫描 Burp Suite Professional, Test, find, and exploit vulnerabilities. 请访问原文链接&#xff1a;Burp Suite Professional 2024.5 (macOS, Linux, Windows) - Web 应用安全、测试和扫描…