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

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

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

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


相关推荐
老邓计算机毕设7 小时前
SSM智慧社区家政服务系统80q7o(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架
松涛和鸣8 小时前
72、IMX6ULL驱动实战:设备树(DTS/DTB)+ GPIO子系统+Platform总线
linux·服务器·arm开发·数据库·单片机
likangbinlxa8 小时前
【Oracle11g SQL详解】UPDATE 和 DELETE 操作的正确使用
数据库·sql
r i c k9 小时前
数据库系统学习笔记
数据库·笔记·学习
野犬寒鸦9 小时前
从零起步学习JVM || 第一章:类加载器与双亲委派机制模型详解
java·jvm·数据库·后端·学习
IvorySQL10 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
小Pawn爷10 小时前
4.镜像仓库
docker
·云扬·10 小时前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
IT邦德10 小时前
Oracle 26ai DataGuard 搭建(RAC到单机)
数据库·oracle
惊讶的猫11 小时前
redis分片集群
数据库·redis·缓存·分片集群·海量数据存储·高并发写