在 M 系列 Mac 上跑 MySQL 5.7
想在本地装一个和生产一致的老版本 MySQL,Homebrew 已经没有 5.7 了,8.0 也只给最新的小版本。用 Docker 最省事:
services:
mysql57:
image: mysql:5.7.44
platform: linux/amd64 # 5.7 没有 arm64 镜像,靠模拟运行
ports: ["3357:3306"]
environment:
MYSQL_ROOT_PASSWORD: root
mysql80:
image: mysql:8.0.20
platform: linux/amd64
ports: ["3380:3306"]
environment:
MYSQL_ROOT_PASSWORD: root端口错开,用容器自带的客户端连就不会有版本不匹配的问题:
docker compose exec mysql57 mysql -uroot -proot比版本号更重要的是配置:隔离级别、sql_mode、binlog_format、lower_case_table_names 跟生产对齐,实验结果才可信。