Docker 安装 MySQL 5.7.44(Mac M4 适配版)

Docker 安装 MySQL 5.7.44(Mac M4 适配版)

一、核心前提

MySQL 5.7 官方镜像已适配 arm64v8(M1/M2/M3/M4)架构,需指定 5.7.44 精确版本标签,避免拉取到默认最新版。

二、完整安装步骤

1. 拉取 MySQL 5.7.44 镜像(M4 专用)

bash

运行

perl 复制代码
# 拉取 MySQL 5.7.44 官方镜像(arm64 适配)
docker pull mysql:5.7.44

# 验证镜像架构(确保是 arm64)
docker inspect mysql:5.7.44 | grep -i "Architecture"
# 输出 "Architecture": "arm64" 即适配 M4

2. 启动 MySQL 5.7.44 容器(带密码 + 端口映射)

bash

运行

ruby 复制代码
# 1. 创建本地数据目录(持久化数据,避免容器删除丢失)
mkdir -p ~/mysql57/data

# 2. 启动容器(核心命令,替换密码后复制)
docker run -d \
  --name mysql57 \
  -p 3306:3306 \
  -v ~/mysql57/data:/var/lib/mysql \
  -e MYSQL_ROOT_PASSWORD=你的密码 \  # 替换为自定义密码(如 123456)
  -e MYSQL_INITDB_SKIP_TZINFO=1 \    # 解决 Mac 时区警告
  mysql:5.7.44
参数说明

表格

参数 作用
--name mysql57 容器命名,方便后续操作
-p 3306:3306 主机 3306 端口映射到容器 3306
-v ~/mysql57/data:/var/lib/mysql 本地目录挂载,持久化 MySQL 数据
MYSQL_ROOT_PASSWORD 设置 root 密码(必须指定)
MYSQL_INITDB_SKIP_TZINFO=1 跳过时区初始化,解决 Mac 下的启动警告

3. 验证容器启动状态

bash

运行

perl 复制代码
# 查看容器状态(Up 表示运行中)
docker ps | grep mysql57

# 查看启动日志(无报错即正常)
docker logs -f mysql57

日志中出现 ready for connections 即启动成功。

4. 登录 MySQL 验证版本

bash

运行

csharp 复制代码
# 登录容器内的 MySQL
docker exec -it mysql57 mysql -u root -p

# 输入密码后,查询版本(验证是否为 5.7.44)
SELECT VERSION();

输出 5.7.44 即安装成功!

三、常用操作指令

bash

运行

bash 复制代码
# 停止 MySQL 容器
docker stop mysql57

# 启动 MySQL 容器
docker start mysql57

# 重启 MySQL 容器
docker restart mysql57

# 进入容器内部(调试/操作)
docker exec -it mysql57 bash

# 查看 MySQL 实时日志
docker logs -f mysql57

四、docker-compose 一键启动(推荐)

创建 docker-compose.yml 文件,内容如下:

yaml

ruby 复制代码
version: '3'
services:
  mysql57:
    image: mysql:5.7.44
    container_name: mysql57
    ports:
      - "3306:3306"
    volumes:
      - ~/mysql57/data:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=你的密码  # 替换为自定义密码
      - MYSQL_INITDB_SKIP_TZINFO=1
    restart: always  # 开机自启

启动命令:

bash

运行

复制代码
docker-compose up -d

五、避坑点(Mac M4 专属)

1. 端口冲突

若 3306 被占用,换端口启动(如 -p 3307:3306),登录时指定端口:

bash

运行

css 复制代码
docker exec -it mysql57 mysql -u root -p -P 3307

2. 时区问题

启动时已添加 MYSQL_INITDB_SKIP_TZINFO=1,避免容器启动时报时区初始化错误。

3. 数据持久化

必须挂载 -v ~/mysql57/data:/var/lib/mysql,否则容器删除后数据会丢失。

4. 镜像拉取慢

配置 Docker 国内镜像加速(Docker Desktop → Settings → Docker Engine):

json

json 复制代码
{
  "registry-mirrors": [
    "https://docker.xuanyuan.me/",
    "https://docker.1ms.run"
  ]
}

修改后点击 Apply & Restart 生效。

六、卸载 / 重置(如需重新安装)

bash

运行

bash 复制代码
# 停止并删除容器
docker stop mysql57 && docker rm mysql57

# (可选)删除本地数据(谨慎!会清空所有 MySQL 数据)
rm -rf ~/mysql57/data

# (可选)删除镜像
docker rmi mysql:5.7.44
相关推荐
知行产研6 小时前
解读〈工程机械行业“十五五“发展规划〉:从卖整机到卖解决方案
数据库·mysql
香蕉大香蕉(06敬畏市场)7 小时前
MySQL 单点详解(08)
java·数据库·mysql·面试·八股
Blockbuater_drug8 小时前
Dify 1.18 本地部署实战:Windows + WSL2 + Docker,从零跑到本地可用
windows·docker·容器·dify·大模型应用平台
李纲明9 小时前
WordPress 报建立数据库连接时出错:先核 wp-config 四元组,再查 MySQL 服务与表修复
运维·数据库·mysql·wordpress·排障·devdiy
徐小黑ACG9 小时前
docker 基础教程
运维·docker·容器
2401_881828329 小时前
MySQL操作命令
android·mysql·adb
鸢尾掠地平10 小时前
MySQL之DML(含例子)
数据库·mysql
香蕉大香蕉(06敬畏市场)10 小时前
MySQL 单点详解(06)
java·数据库·mysql·博客·实习
CodeHackerBhx10 小时前
MySQL 迁达梦踩坑实录:FIND_IN_SET、timestamp(6) 和一整批要改的函数
数据库·mysql·达梦·信创·数据库迁移
wzg201610 小时前
ubuntu 离线安装 docker-compose
linux·ubuntu·docker