首页 > 数据库 >在本地通过Docker安装MySQL并配置持久化

在本地通过Docker安装MySQL并配置持久化

时间:2024-09-03 12:36:17浏览次数:8  
标签:持久 8.4 create MySQL mysql Docker docker

看前须知

这里使用Mac下的OrbStack代替Docker,都是命令行操作,除了可能出现的UI不同外没有任何区别。

拉取镜像

由于是Mac环境,所以优先使用arm64结构,关于是否支持所需架构,可以在Docker Hub上查,一般支持的都会写明。
这里搜索MySQL,进入官方镜像就可以在Overview的Quick reference (cont.)中看到支持arm架构。

点进arm64v8,在Tags中搜索要安装的版本即可,这里选用8.4.2(LTS版本),如果你使用的版本和我一样,直接复制下面的指令即可。

docker pull arm64v8/mysql:8.4.2

部署

这里使用数据卷进行持久化,在其他教程中也有使用绑定挂载进行持久化的。简单说下两者的区别:

  • 数据卷不需要关心存储位置,性能优于绑定挂载,可以使用Docker命令进行创建删除和备份
  • 绑定挂载可以指定在宿主机上存储的位置,便于直接访问和编辑文件,但是由于直接依赖于宿主机路径,在不同环境可能有路径不一致问题。

通过下面的命令可以创建数据卷,一共需要创建三个,分别对应MySQL的数据、配置和日志文件,名称可以自定义,这里我统一使用 mysql-xxx

docker volume create 数据卷名  // 创建数据卷

docker volume create mysql-data
docker volume create mysql-log
docker volume create mysql-config

最后直接创建容器即可,可以修改 MYSQL_ROOT_PASSWORD 参数来设置密码。
如果你使用的是其他版本,记得修改 arm64v8/mysql:8.4.2 为你的版本。

docker run --name mysql \
    -e MYSQL_ROOT_PASSWORD=root \
    -v mysql-data:/var/lib/mysql \
    -v mysql-log:/var/log/mysql \
    -v mysql-config:/etc/mysql \
    -p 3306:3306 \
    -d arm64v8/mysql:8.4.2

标签:持久,8.4,create,MySQL,mysql,Docker,docker
From: https://www.cnblogs.com/ahci316/p/18393201

相关文章

  • 20240903_120652 mysql 填空题 dql简单查
    查询tb表的所有数据select*fromtb查询student表的全部数据,只显示id与name列selectid,namefromstudent查询student表的全部数据,只显示id与name列,给id列起别名为学号,给name列起别名为姓名selectidas学号,nameas姓名fromstudent查询student表中的学生都来自哪个城......
  • mysql 索引
    最左匹配原则CREATEINDEXidx_age_classid_nameONstudent(age,classId,name);showindexfromstudent;--1【索引部分生效】--索引部分生效agekey=idx_age_classid_name,key_len=5(int4字节+额外1字节标记空null)EXPLAINSELECTSQL_NO_CACHE*FROMstudentWHERE......
  • 程序员开发必备MySQL数据可视化视图工具Navicat Premium Lite 精简版安装教程
    程序员开发必备MySQL数据可视化视图工具NavicatPremiumLite精简版使用:https://blog.csdn.net/jky_yihuangxing/article/details/141854667文章目录1.软件官方下载地址2.软件介绍3.下载安装步骤1.软件官方下载地址https://www.navicat.com.cn/products#navi......
  • cwl docker
     #!/usr/bin/envcwl-runnercwlVersion:v1.0class:CommandLineToollabel:echodoc:|NCBIBlastNNucleotide-NucleotideBLASTrequirements:InlineJavascriptRequirement:{}ResourceRequirement:coresMax:3ramMax:10240hints:DockerR......
  • 20240903_110652 mysql 填空题 dml
    全列添加,往student表(id,name,age)添加数据,id自增长,name值为'tom',age值为6insertintostudentvalues(null,'tom',6)限定列的添加,往student表(id,name,age)添加数据,不管id,name值为'tom',age值为6insertintostudent(name,age)values('tom',6)添加多条数据,往stude......
  • Java项目: 基于SpringBoot+mysql房屋租赁系统(含源码+数据库+答辩PPT+毕业论文)
    一、项目简介本项目是一套基于SpringBoot+mysql房屋租赁系统包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。项目都经过严格调试,eclipse或者idea确保可以运行!该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值二、技术实......
  • Docker 简介
    10.Docker简介学习Docker之前,先了解Docker为什么出现,解决了什么痛点;然后简单介绍Docker是什么。‍在Docker出现之前假如你在自己的笔记本上,开发一个商城项目,那么开发环境就是你自己的笔记本,并且该开发环境具有特定的配置;而其他同事也有自己的本地开发环境,并且配置一般......
  • Vue3+NestJS+Vite4+TS4+Mysql8+Nginx全栈开发企业级管理后台
    vite打包快的原因:冷启动1.esbuild构建依赖,go语言编写多线程打包。2.原生的esm方式提供源码,浏览器分担了一部分工作。HMR热更新1.缓存机制,利用浏览器http头部,源码模块请求根据304协商缓存和依赖模块请求通过强缓存(cache-control:max-age=315360000,public,immutable)只是模块......
  • Python-openpyxl读取Excel中数据写入MySQL的表中
     Python代码:importpymysqlfromopenpyxlimportload_workbookdefinsert_excel_data_to_mysql(in_filename,in_host,in_user,in_password,in_database,in_table):#连接数据库mydb=pymysql.connect(host=in_host,#数据库主机地址......
  • PHP批量修改MySQL数据表字符集为utf8mb4/utf8mb4_unicode_ci
    编码大全可参考我之前的文章:快速理解ASCII、GBK、Unicode、UTF-8、ANSI批量修改注意这是DDL操作,操作过程会锁表(元数据锁),平均1秒能够转码3张表(数据量不大)。亲测操作过后没有数据异常,推荐执行前备份。//接手一些老项目,需要修改编码。$host='';$db='';$user='';$pa......