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 文件,拖动 Docker 到 Applications 文件夹。

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

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

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

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


相关推荐
wno7046 小时前
postgresSQL压缩版安装与基本命令
数据库·postgresql
聚美智数8 小时前
智能结构化识别-图片结构解析-图像结构化解析-照片结构化解析
android·java·数据库
瀚高PG实验室8 小时前
瀚高数据库常用系统表查询入门指南(附常用SQL)
数据库·sql·postgresql·瀚高数据库
JavaPub-rodert8 小时前
Docker 日志为什么能把磁盘写爆?讲透 json-file、local、journald、日志轮转与 docker logs
docker·eureka·json
ben9518chen8 小时前
mysql数据库基本操作
数据库·mysql
2603_965148118 小时前
电商选品调研:通过关键词搜索API获取市场热销商品,结合商品详情API分析竞品卖点与定价
开发语言·数据库·人工智能·python·信息可视化
土豆.exe9 小时前
nf_tables 的 verdict 被读了两次:一个十年未闭合的位域错配
java·数据库·网络安全·缓存
缓慢更新9 小时前
表单引擎的存储建模:宽表与文档库的取舍
运维·服务器·网络·数据库·低代码·oracle·适配器模式
人生匆匆9 小时前
docker部署ceph集群
ceph·docker·容器
Web3&Basketball11 小时前
实测Gemini4Argon:ERQA 87%登顶长程任务榜
数据库·python·大模型·多模态·gemini·长上下文·推理优化