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 内存

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

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

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


相关推荐
FserSuN5 小时前
mysql8 loose index skip scan 特性加速分组查询性能
数据库·mysql
陈文锦丫5 小时前
微服务-----
java·数据库·微服务
dishugj5 小时前
[ORACLE]oracle用户密码永不过期修改以及ORA-28000报错解决
数据库·oracle
一点事5 小时前
oracle:存储过程基础语法
数据库·oracle
tebukaopu1485 小时前
mysql distinct慢
数据库·mysql
步步为营DotNet5 小时前
深入理解IAsyncEnumerable:异步迭代的底层实现与应用优化
java·服务器·数据库
数据库学啊6 小时前
专业的国产时序数据库公司
数据库·时序数据库
源代码•宸6 小时前
分布式缓存-GO(项目整体架构简介、Ubuntu 22.04 64位安装GoLang、安装Docker、解决Go module 的依赖问题)
经验分享·分布式·后端·ubuntu·缓存·docker·golang
黑客思维者6 小时前
突破 Python 多线程限制:GIL 问题的 4 种实战解法
服务器·数据库·python·gil