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

前言:

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

环境:Linux Server + Docker + Docker Compose
MySQL 版本:5.7.44
适用场景:测试 / 生产 / 学习 / 云服务器


一、为什么选择 MySQL 5.7?

虽然 MySQL 8.0 已经成为主流,但在大量存量系统中

  • MySQL 5.7 依然是事实标准
  • 很多老项目 / 中间件 / ORM 对 5.7 更友好
  • 对稳定性要求高的系统仍大量使用 5.7

因此,掌握一套稳定、规范的 MySQL 5.7 Docker 部署方案仍然非常有价值


二、部署目标

本次部署目标如下:

  • 使用Docker Compose
  • MySQL 版本5.7
  • 使用相对路径 ./ 进行目录挂载
  • 数据、日志、配置全部可持久化
  • 配置方式符合官方镜像推荐
  • 可长期运行,适合生产环境

三、目录结构设计(非常重要)

在服务器上创建如下目录结构:

mysql5.7/ ├── docker-compose.yml ├── data/ # MySQL 数据目录 ├── log/ # MySQL 日志目录 └── config/ └── my.cnf # 自定义配置文件

创建目录:

mkdir-p mysql5.7/{data,log,config}cdmysql5.7

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

docker network create sql_default

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

networks:-sql_default networks:sql_default:external:true

四、docker-compose.yml(最终推荐版)

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

说明几点关键设计:

  1. 不再使用version:字段
    Docker Compose v2 已废弃该字段,避免启动警告

  2. 配置目录挂载到/etc/mysql/conf.d
    不覆盖官方默认配置,更安全、规范

  3. 使用 utf8mb4 作为默认字符集


五、MySQL 配置文件(config/my.cnf)

[mysqld] port=3306 user=mysql server-id=1 default-storage-engine=INNODB # 字符集 character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci skip-character-set-client-handshake # 时区 default-time-zone='+8:00' # 连接数 max_connections=500 max_connect_errors=1000 # InnoDB innodb_buffer_pool_size=512M innodb_log_file_size=256M innodb_file_per_table=1 innodb_flush_log_at_trx_commit=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 模式(5.7 推荐) sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4

如果服务器内存 ≥ 8G,可适当调大innodb_buffer_pool_size


六、启动 MySQL 容器

dockercompose up -d

首次启动会自动初始化数据库文件。


七、验证 MySQL 是否启动成功

查看日志:

dockerlogs mysql57

看到如下关键日志,说明初始化成功:

MySQL init process done. Ready for start up.

八、连接 MySQL 验证

方式一:宿主机连接

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

方式二:容器内连接(推荐)

dockerexec-it mysql57 mysql -uroot -p

输入密码:

admin123456

能正常进入即表示部署完成。


九、常见问题说明

1️⃣ 时区 Warning 是否需要处理?

Warning: Unable to load '/usr/share/zoneinfo/...'

这是MySQL 官方镜像的常见警告,对业务无实质影响。

如需彻底消除,可额外挂载:

-/usr/share/zoneinfo:/usr/share/zoneinfo:ro

2️⃣ data 目录能否删除?

  • ❌ 生产环境严禁随意删除
  • ✅ 仅在明确需要重建数据库时才删除

十、总结

✔ 本方案适用于Linux 服务器
✔ 目录结构清晰、可维护
✔ 符合 MySQL 官方 Docker 镜像设计
✔ 可直接用于生产或教学
✔ 后续可扩展主从、备份、迁移


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1206696.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

提示工程架构师揭秘:电商系统中Prompt的缓存优化方法

提示工程架构师揭秘:电商系统中Prompt的缓存优化方法 1. 引入与连接 1.1引人入胜的开场 想象一下,你正在运营一家超大型的电商平台,每天有数以百万计的用户在搜索商品。为了给用户提供最精准、最贴心的搜索结果,你使用了基于Pr…

MinIO文件对象存储使用(C#)

开发软件程序特别是上传文件我们常常因为 地址的不正确或者性能或访问方式等等被烦扰的焦头烂额,这就是我们常使用的传统文件存储,今天我们将详细介绍文件对象存储系统,这是一种全新的存储解决方案。 接下来我详细从多个维度对传统文件存储和…

前端小白别慌:搞懂CSS块状元素,页面布局不再翻车(附避坑指南)

前端小白别慌:搞懂CSS块状元素,页面布局不再翻车(附避坑指南) 前端小白别慌:搞懂CSS块状元素,页面布局不再翻车(附避坑指南)先整点废话:我当年被“块”支配的恐惧块状元素…

9D电影设备多少钱一套?如何提升5D体验馆的吸引力?

9D电影设备费用分析,如何合理预算投资 投资9D电影设备时,首先需要明确各类设备的费用组成。一般来说,完整的一套9D电影设备价格在10万到30万元之间,具体取决于设备的配置和功能。同时,还需考虑安装和调试的成本。选择…

9D影院设备厂家是什么?7D影院设备多少钱?

9D影院设备厂家的市场前景与技术创新 随着消费者对娱乐体验的需求日益增加,9D影院设备厂家的市场前景愈发广阔。这些厂家通过不断的技术创新,结合虚拟现实技术,提升了观影体验的沉浸感。例如,广州卓远虚拟现实科技股份有限公司正是…

Java毕设选题推荐:基于springboot的猫咖宠物咖啡平台管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

计算机Java毕设实战-基于springboot的猫猫主题宠物咖啡平台管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

Java毕设项目:基于springboot的宠物咖啡平台管理系统(源码+文档,讲解、调试运行,定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

【毕业设计】基于springboot的宠物咖啡平台管理系统(源码+文档+远程调试,全bao定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

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…

mysql57下载地址

https://downloads.mysql.com/archives/community/

LoRA微调-挑战(1)-数据质量

目录总结明确定义 label schema(互斥 / 可多选)一、总体设计原则(先说清楚“为什么这样分”)二、Intent Schema 定义(可直接写进标注文档)Intent 1:FACT_QUERY(功能性 / 数据型查询)1️⃣ Intent 定义(Defin…

完整教程:Alluxio正式登陆Oracle云市场,为AI工作负载提供TB级吞吐量与亚毫秒级延迟

完整教程:Alluxio正式登陆Oracle云市场,为AI工作负载提供TB级吞吐量与亚毫秒级延迟pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; f…

Cesium进阶教程:Shader与三维GIS可视化实战

视频合集点击查看 视频教程大纲: 1.cesium进阶教程:在cesium后处理中移植shadertoy的代码 2.cesium进阶教程:后处理绘制圆形 3.cesium进阶教程:封装自定义materialProperty 4.cesium进阶教程:自定义材质实现流动线…

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

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

java研发工程师必知必会

java研发工程师必知必会java作为一种跨平台、面向对象的编程语言,广泛应用于企业级Web开发和移动应用开发。其核心特性包括可移植性(一次编写,到处运行)、安全性、分布式支持以及泛型编程能力。又因其简单易学深受…

【笔记】【底层逻辑1】

目录 精读刘润《底层逻辑 1》:看透世界运转规律,少走人生弯路 一、 是非对错的底层逻辑:三种视角,三种答案 二、 分清人性、道德和法律:别混淆三者的边界 三、 人生的三层智慧:选择、定力、博弈 第一层智慧:选择 —— 先知道 “有的选”,再敢放弃 第二层智慧:定…

静态 Top Tree

哈哈哈学会的新东西啊,暴搓312行 在此鸣谢机房大蛇QEDQEDQED&&zxkqwq进行一个讲解 前置知识 en。没有。 (可能要理解下线段树的结构,前缀和,二分) 定义 Top Tree是什么? 就是对于一个给定的树,通过comp…

【笔记】【周期】

目录 《周期》核心解读笔记 第一类:基本面周期 —— 经济、政府、企业的底层逻辑 1. 经济周期 2. 政府调节周期 3. 企业盈利周期 第二类:心理周期 —— 投资人的情绪钟摆 1. 心理钟摆 2. 风险态度周期 第三类:市场周期 —— 信贷、房地产、股市的具体玩法 1. 信贷…

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

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