当前位置: 首页 > backend >正文

Mysql数据挂载

MySQL 的数据创建一个数据卷(Volume)。数据卷是 Docker 推荐的持久化数据方式,它由 Docker 自己管理,确保数据不会随着容器的删除而丢失。

sudo docker volume create mysql_data
sudo: 以管理员权限运行命令。docker volume create: 这是创建数据卷的命令。mysql_data: 你为这个数据卷指定的名字,可以自定义。

在这里插入图片描述

第二步:运行 MySQL 容器

sudo docker run -d --name mymysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=your_password \
-v mysql_data:/var/lib/mysql \
--restart always \
mysql:8.0
sudo docker run: 这是创建并启动一个容器的核心命令。-d: Detach(分离)模式。让容器在后台运行,不会占用你的终端。--name mymysql: 为容器指定一个名称,方便你管理它。-p 3306:3306: Publish(发布)端口。左边的 3306: 宿主机(你的服务器)的端口。当外部应用或客户端连接到这个端口时,请求会被转发到容器。右边的 3306: 容器内部的端口,MySQL 服务在容器里默认监听这个端口。-e: Environment(环境变量)。MYSQL_ROOT_PASSWORD=your_password: 设置 MySQL root 用户的密码。
请务必将 your_password 替换为一个安全的、你自己设定的密码。-v: Volume(数据卷)挂载。mysql_data: 这是你第一步创建的数据卷名称。:: 分隔符。/var/lib/mysql: 容器内部的路径。这是 MySQL 镜像默认存储数据库文件的目录。docker 会把数据卷里的内容同步到这个目录。--restart always: 设置容器的重启策略。即使容器因为某些原因停止或服务器重启,docker 都会自动重启这个容器。mysql:8.0: 要使用的镜像名称和版本。

在这里插入图片描述

第三步:验证数据持久化 要验证挂载是否成功,你可以创建一个测试数据库,然后删除容器再重新创建。

进入容器

sudo docker exec -it mymysql bash

在这里插入图片描述
连接到 MySQL

mysql -u root -p

输入密码,然后创建数据库CREATE DATABASE test_db;

在这里插入图片描述

使用SHOW DATABASES;就能查看到刚刚创建的数据库了

在这里插入图片描述

退出 MySQL 和容器

exit
exit

在这里插入图片描述

删除容器

sudo docker stop mymysql
sudo docker rm mymysql

在这里插入图片描述

1,这时,容器和它内部的临时数据都被删除了,但你挂载的数据卷 (mysql_data) 依然存在。
2,用同样的数据卷重建容器:再次运行第二步的 docker run 命令。新的容器会自动加载之前的数据卷。
3,验证数据是否存在:

sudo docker run -d --name mymysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=your_password \
-v mysql_data:/var/lib/mysql \
--restart always \
mysql:8.0
sudo docker pssudo docker exec -it mymysql bash
# 在容器内部,再次尝试连接
mysql -u root -p

在这里插入图片描述

http://www.xdnf.cn/news/18871.html

相关文章:

  • TencentOS Server 4.4 下创建mysql容器无法正常运行的问题
  • 微服务-docker compose
  • mfc中操作excel
  • APP与WEB测试的区别?
  • Windows MCP 踩坑经验 -- 今日股票行情助手
  • 金仓数据库文档系统全面升级:用户体验焕然一新
  • SqlHelper类的方法详细解读和使用示例
  • 人工智能和机器学习如何改善机器人技术
  • 应变片与分布式光纤传感:核心差异与选型指南
  • 深入解析 Chromium Mojo IPC:跨进程通信原理与源码实战
  • 【开发配置】GitLab CR(Code Review)规则配置清单
  • 钉钉 AI 硬件:DingTalk A1
  • Java文件的组织方式
  • 用户体验设计 | 从UX到AX:人工智能如何重构交互范式?
  • 趣味学习Rust基础篇(用Rust做一个猜数字游戏)
  • 化学分析原理与算法、数据库。
  • 本地搭建 Redis/MySQL 并配置国内镜像加速(Docker/原生安装 | macOS/Linux/Windows)
  • 【Git】多人协作
  • k8sday18 HELM
  • AI编写测试用例
  • 【微服务】SpringBoot 整合 Easy-Es 实战操作详解
  • 深入探索Vue:前端开发的强大框架
  • 字母异位词分组,leetCode热题100,C++实现
  • 嵌入式学习day38
  • 搭建域服务器
  • spring-ai-alibaba使用
  • 第18章|变量:把数据装进“盒子”的正确方式
  • 机器学习 TF-IDF方法
  • 【docker apoc 部署的neo4j安装apoc插件】
  • MySQL 面试题系列(五)