Apple M2 + Docker + MySQL 轻量配置全教程

从零开始到运行 MySQL 的全套"保姆级"教程,针对 Apple M2 芯片和 Docker 轻量配置优化,按照步骤就能直接运行。


Apple M2 + Docker + MySQL 轻量配置全教程


1️⃣ 安装 Docker Desktop for Mac(Apple Silicon)

  1. 打开浏览器,访问 Docker 官方网站下载页面:
    https://www.docker.com/products/docker-desktop/

  2. 下载 Mac (Apple chip) 版本(注意选择 Apple Silicon / arm64 版本)。

  3. 打开下载的 .dmg 文件,拖动 DockerApplications 文件夹。

  4. 启动 Docker Desktop,首次启动可能提示需要系统权限,允许即可。

  5. 验证安装:

    docker --version
    docker info

你应该能看到 Docker 版本信息和系统信息。

💡 注意:M2 芯片是 ARM 架构,后续拉取 MySQL 镜像时需要选择官方支持 arm64 的版本(官方镜像已支持)。


2️⃣ 创建本地数据目录

为了持久化数据库数据(容器删除也不丢失):

复制代码
mkdir -p ~/docker/mysql_data

~/docker/mysql_data 是数据库文件存储目录,可自定义路径,但建议放在用户目录下。


3️⃣ 拉取 MySQL 镜像(arm64 版本)

复制代码
docker pull mysql:8.0
  • 8.0 是 MySQL 官方最新版,开发和测试推荐

  • 官方镜像已兼容 ARM 架构,无需额外设置


4️⃣ 启动 MySQL 容器(轻量优化版)

复制代码
docker run -d \
  --name my-mysql \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -e MYSQL_DATABASE=dev_db \
  -e MYSQL_USER=dev \
  -e MYSQL_PASSWORD=dev123 \
  -p 3306:3306 \
  -v ~/docker/mysql_data:/var/lib/mysql \
  --memory="1g" \
  --cpus="1.0" \
  mysql:8.0 \
  --default-authentication-plugin=mysql_native_password

参数说明

参数 含义
--name my-mysql 容器名称
-e MYSQL_ROOT_PASSWORD=123456 root 密码
-e MYSQL_DATABASE=dev_db 启动时创建默认数据库
-e MYSQL_USER=dev / -e MYSQL_PASSWORD=dev123 创建普通开发用户
-p 3306:3306 映射本机端口,可用本地客户端访问
-v ~/docker/mysql_data:/var/lib/mysql 数据持久化
--memory="1g" 限制容器内存,轻量运行
--cpus="1.0" 限制 CPU 占用,保证系统不卡顿
--default-authentication-plugin=mysql_native_password 避免客户端兼容性问题

这样配置占用 1 核 CPU + 1GB 内存,非常轻量,适合本地开发。


5️⃣ 验证容器是否运行

复制代码
docker ps

你应该看到:

复制代码
CONTAINER ID   IMAGE      COMMAND                  ...   PORTS
xxxxxx         mysql:8.0 "docker-entrypoint..." ...  0.0.0.0:3306->3306/tcp

6️⃣ 连接 MySQL

6.1 命令行连接

复制代码
docker exec -it my-mysql mysql -uroot -p
# 输入密码:123456

6.2 本地客户端连接

  • Host: 127.0.0.1

  • Port: 3306

  • User: dev

  • Password: dev123

  • Database: dev_db

可以使用 Navicat、DBeaver、DataGrip 等工具。


7️⃣ 停止和启动容器

复制代码
# 停止
docker stop my-mysql

# 启动
docker start my-mysql

数据仍然保存在 ~/docker/mysql_data,不会丢失。


8️⃣ 删除容器(数据不丢失)

复制代码
docker rm -f my-mysql

数据在 ~/docker/mysql_data 中仍然存在,可重新创建容器挂载使用。


9️⃣ 高级优化建议(轻量开发)

  1. 限制资源

    • --memory=1g + --cpus=1.0 已保证 MySQL 对系统影响最小。
  2. 持久化数据

    • 挂载 ~/docker/mysql_data,保证容器删除或重建数据不丢失。
  3. 减少日志占用

    • 开发环境无需慢查询日志或二进制日志,可以通过容器参数或 MySQL 配置关闭,减少磁盘占用。
  4. 多版本测试

    • 可同时启动多个容器,不同端口,不同版本,方便版本兼容测试。

10️⃣ 总结

  • 全程适配 Apple M2 + ARM 架构

  • 轻量资源:1 核 CPU + 1GB 内存

  • 数据持久化,不污染系统

  • 容器化易于管理,多版本测试灵活

开发、学习、调试都非常适合,也可以快速迁移到远程服务器或生产环境。


相关推荐
就叫飞六吧2 分钟前
防抖、幂等、唯一约束三件套 ;
数据库
神奇霸王龙20 分钟前
Agent 准入门控屠夫:5 旗舰 4 维度评估
linux·运维·数据库·ai·ai作画·agent·ai编程
鲸采云SRM采购管理系统27 分钟前
采购管理系统哪家好?2026最新测评对比
java·服务器·数据库
cfm_291430 分钟前
基于Binlog实现不停机数据库平滑迁移技术
运维·数据库·架构
Full Stack Developme30 分钟前
SQL 注入 的历史及设计工作原理
数据库·sql
Tisfy33 分钟前
Codex:通过编辑配置文件添加带Bearer的自定义MCP
数据库·大模型·agent·codex·mcp
哈__1 小时前
面向AI智能体的数据库专业技能包:将DBA工程经验封装为可调用能力
数据库·人工智能·dba
阿坤带你走近大数据1 小时前
SQL里where后面的1=1是干嘛的,走的是什么索引
数据库·sql
阿坤带你走近大数据1 小时前
SQL的执行顺序和书写顺序的介绍
数据库·sql·oracle
Poo_Chai2 小时前
QT emit信号后完整处理流程,包括槽函数响应流程
java·开发语言·数据库