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
相关推荐
内网渗透2 小时前
Komari 部署教程:无数据库、单文件、Docker 一键启动的监控工具
数据库·docker·容器·内网穿透·cpolar·远程办公·komari
新猿易码2 小时前
mac(arm架构) 使用docker安装Tomcat 8 + JRE 8
docker·tomcat
未来龙皇小蓝2 小时前
【MySQL-索引调优】08:模糊查询与索引
数据库·mysql·性能优化
项目工程打工马2 小时前
Ubuntu 上 MySQL 详细安装指南
mysql·ubuntu·adb
moxiaoran57532 小时前
使用ShardingSphere实现MySQL读写分离(一)
数据库·mysql
好好学习叭~3 小时前
将conda环境打包为docker镜像
docker·容器·conda
V1ncent Chen3 小时前
SQL大师之路 11 外连接和自连接
数据库·sql·mysql·数据分析
gaozhiyong08133 小时前
SpringBoot连接多数据源MySQL、SqlServer等(MyBatisPlus测试)
spring boot·mysql·sqlserver
2601_948606183 小时前
MySQL B+树索引高度计算与性能阈值探讨
数据库·b树·mysql