news 2026/2/10 4:04:28

Docker Compose 部署 MySQL 8.4 LTS(生产级实践方案)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Docker Compose 部署 MySQL 8.4 LTS(生产级实践方案)

前言:

使用docker compose 详细部署mysql8.4版本数据库详细步骤

环境:Linux Server / macOS(ARM)
MySQL 版本:8.4.5(LTS)
部署方式:Docker Compose
适用场景:新项目 / 长期维护系统 / ARM & x86 环境


一、为什么选择 MySQL 8.4 LTS?

MySQL 8.4 是官方长期支持版本(LTS),相比 8.0.x 的创新版本:

  • ✅ 更稳定,维护周期更长
  • ✅ 官方明确推荐用于生产
  • ✅ 原生支持 ARM(Apple Silicon / 云 ARM 实例)
  • ✅ 新项目首选版本

⚠️ 注意:
MySQL 8.4已经移除了部分 8.0 早期参数,直接照抄旧配置很容易启动失败(本文重点避坑)。


二、本次部署目标

  • 使用 Docker Compose 部署 MySQL 8.4.5
  • 目录使用相对路径./挂载
  • 数据 / 日志 / 配置完全持久化
  • 避开 MySQL 8.4 的常见启动坑
  • 可在Linux / macOS ARM正常运行

三、目录结构设计(推荐)

mysql8.4/ ├── docker-compose.yml ├── data/ # 数据目录 ├── log/ # 日志目录 └── conf/ └── my.cnf

创建目录:

mkdir-p mysql8.4/{data,log,conf}cdmysql8.4

如果希望自定义docker网络的话,可以运行:

docker network create sql_default

计划使用默认的话,就删除下面内容中的关于networks配置的即可:

networks:-sql_default networks:sql_default:external:true

四、docker-compose.yml(MySQL 8.4 推荐版)

services:mysql:image:mysql:8.4.5container_name:mysql84restart:alwaysports:-"3306:3306"environment:TZ:Asia/ShanghaiMYSQL_ROOT_PASSWORD:admin123456volumes:-./data:/var/lib/mysql-./log:/var/log/mysql-./conf:/etc/mysql/conf.d-/etc/localtime:/etc/localtime:rocommand:["--character-set-server=utf8mb4","--collation-server=utf8mb4_0900_ai_ci"]networks:-sql_defaultnetworks:sql_default:external:true

⚠️ 重点说明(8.4 必看)

不要再加这个参数:

--default-authentication-plugin=mysql_native_password

MySQL 8.4 中已被移除,会直接导致启动失败:

unknown variable 'default-authentication-plugin'

五、MySQL 8.4 专用配置文件(conf/my.cnf)-- 可选,不配置使用默认也可以

[mysqld] port=3306 user=mysql server-id=1 # 字符集(8.4 默认 utf8mb4) character-set-server=utf8mb4 collation-server=utf8mb4_0900_ai_ci # 时区 default-time-zone='+8:00' # 连接 max_connections=500 # InnoDB innodb_buffer_pool_size=512M innodb_log_file_size=256M innodb_flush_log_at_trx_commit=1 innodb_file_per_table=1 # 日志 log-error=/var/log/mysql/error.log slow_query_log=1 slow_query_log_file=/var/log/mysql/slow.log long_query_time=2 # SQL 模式(8.x 推荐) sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4

💡 MySQL 8.4 默认使用caching_sha2_password,无需手动配置


六、启动 MySQL 8.4 容器

运行命令要跟docker-compose.yml文件在同一目录

dockercompose up -d

首次启动会进行数据库初始化。


七、启动成功的“关键信号”

查看日志:

dockerlogs mysql84

出现以下日志,说明初始化与启动全部成功

MySQL init process done. Ready for start up.

这样的日志正是标准成功流程


八、连接验证

宿主机连接

mysql -h127.0.0.1 -P3306-u root -p

容器内连接(推荐)

dockerexec-it mysql84 mysql -uroot -p

九、常见问题 & 避坑总结(8.4 特有)

1️⃣ 启动失败:unknown variable

原因:

  • 使用了8.0 / 5.7 的旧参数
  • 8.4 已移除部分变量

解决:

  • 删除default-authentication-plugin
  • 只保留8.4 官方支持参数

2️⃣ lower_case_table_names 警告

Setting lower_case_table_names=2 because file system is case insensitive

说明:

  • macOS / Docker Desktop 常见
  • Linux 服务器一般不会出现
  • 不影响使用

3️⃣ 时区 Warning 是否影响?

Unable to load '/usr/share/zoneinfo/...'
  • 仅影响CONVERT_TZ()
  • 业务无影响
  • 可选择忽略

十、5.7 vs 8.4 LTS 简要对比

对比项MySQL 5.7MySQL 8.4 LTS
生命周期即将 EOL官方长期支持
ARM 支持
默认认证mysql_native_passwordcaching_sha2_password
JSON基础更强
推荐新项目

十一、总结

✔ MySQL 8.4 是新项目首选
✔ Docker Compose 部署简单可控
✔ 避开旧版本配置是关键
✔ 本文方案可直接用于生产


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/7 18:15:26

Trae AI零基础编程入门:纯小白也能快速上手

视频点击这里直接观看 1、简介 新中地推出Trae AI编程系列课程,本系列课程共分为三个模块,系统讲解Trae IDE的核心功能与实战应用,手把手教你学会Trae,提升编程效率。 PS. 针对纯小白,没有任何AI编程基础的同学也能…

作者头像 李华
网站建设 2026/2/5 23:40:23

TCP reliable / UDP unreliable hoax

Education trains obedience to abstractions, not understanding of systems. 🔹 1. “TCP reliable / UDP unreliable” is a pedagogical simplification Teachers present it as: TCP reliable stream UDP unreliable datagram Students interpret it as: UD…

作者头像 李华
网站建设 2026/2/7 17:00:29

typescript-类的访问权限public、private、protected

访问权限这个你可以理解为类的某个属性或者某个方法可以在哪里访问。分三种,public(默认),protected,privatepublicpublic表示在任意的地方都可以访问某个类的属性或者方法。场景:比如你叫小名,别人要叫你的时候,得知道你的名字&a…

作者头像 李华
网站建设 2026/2/5 22:49:36

【React + TypeScript 实现高性能多列多选组件】

引言 在现代Web应用中,多选组件是常见的UI元素,尤其是在需要用户从多个选项中进行选择的场景。本文将介绍如何使用React和TypeScript实现一个功能完整、性能优化的多列多选组件,支持"Select All"功能和垂直填充的多列布局。组件功能…

作者头像 李华
网站建设 2026/2/8 18:06:46

Abaqus计算加速全解析——从算力瓶颈到高效解决方案的核心逻辑

Abaqus作为全球领先的通用有限元分析(FEA)软件,覆盖结构力学、热分析、流体-结构耦合等多学科场景,是科研院所、工程企业开展复杂仿真的“标配工具”。但对多数用户而言,Abaqus的“好用”往往与“难用”并存&#xff1…

作者头像 李华