--
:
--
:
--
🐳 使用 Docker 快速部署 MySQL 5.7(附配置挂载)
最后更新于:
🧱 一、前提条件
在开始之前,请确保你的环境中已安装:
- Docker 👉 安装教程
- Docker Compose 👉 推荐使用 v1.x 或 v2.x
📦 准备好了吗?走你~
🗂️ 二、目录结构(超重要!)
先在项目根目录创建以下文件夹结构:
1
2.
3├── docker-compose.yml
4└── mysql
5├── conf # 👉 配置文件挂载目录
6├── data # 👉 数据库数据持久化
7└── logs # 👉 数据库日志你可以提前创建这些目录:
1mkdir -p mysql/{conf,data,logs}💡 注意: 如果你想初始化数据库表结构,可以创建一个 db 目录用于挂载 *.sql 文件(文章后面会提)。
⚙️ 三、docker-compose.yml 配置
下面是完整的配置内容,直接复制粘贴即可用:
1version: '3'
2services:
3 mysql:
4 container_name: mysql
5 restart: always
6 image: mysql:5.7
7 ports:
8 - "3306:3306"
9 volumes:
10 # 配置文件(可选)
11 - ./mysql/conf:/etc/mysql/conf.d
12 # 日志
13 - ./mysql/logs:/logs
14 # 数据
15 - ./mysql/data:/var/lib/mysql
16 command: [
17 'mysqld',
18 '--innodb-buffer-pool-size=80M',
19 '--character-set-server=utf8mb4',
20 '--collation-server=utf8mb4_unicode_ci',
21 '--default-time-zone=+8:00',
22 '--lower-case-table-names=1'
23 ]
24 environment:
25 MYSQL_ROOT_PASSWORD: 123456 🚨 # 强烈建议改成安全密码📌 配置说明:
| 配置项 | 说明 |
|---|---|
volumes | 挂载本地目录实现数据持久化,避免容器重启后丢数据 💾 |
command | 自定义 MySQL 启动参数,例如字符集、时区等 🧠 |
environment | 设置 root 密码。部署完后可以用这个密码连接 🗝️ |
🧾 四、my.cnf 通用配置文件
请将以下内容保存为 ./mysql/conf/my.cnf,Docker 会自动加载:
1[mysqld]
2# 端口号
3port = 3306
4
5# 数据目录
6datadir = /var/lib/mysql
7
8# 错误日志
9log-error = /logs/mysql-error.log
10
11# 慢查询日志
12slow_query_log = 1
13slow_query_log_file = /logs/mysql-slow.log
14long_query_time = 2
15
16# 启用 general 日志(调试时开启)
17# general_log = 1
18# general_log_file = /logs/mysql-general.log
19
20# 连接相关
21max_connections = 200
22max_connect_errors = 6000
23wait_timeout = 28800
24interactive_timeout = 28800
25
26# 字符集与排序规则
27character-set-server = utf8mb4
28collation-server = utf8mb4_unicode_ci
29
30# 时区
31default-time-zone = '+8:00'
32
33# lower_case_table_names 设置(1 表示不区分大小写)
34lower_case_table_names = 1
35
36# InnoDB 相关设置
37innodb_buffer_pool_size = 128M
38innodb_log_file_size = 64M
39innodb_flush_log_at_trx_commit = 1
40innodb_file_per_table = 1
41
42# 启动 binlog(二进制日志,支持主从)
43# log-bin = mysql-bin
44# server-id = 1
45# expire_logs_days = 7📁 my.cnf 路径:./mysql/conf/my.cnf
📝 Docker 会自动读取这个配置,覆盖默认值。
🚀 五、启动服务
在 docker-compose.yml 所在目录执行:
1docker-compose up -d🎉 看到 mysql 启动成功就大功告成!
可以通过以下命令进入容器测试:
1docker exec -it mysql bash
2mysql -uroot -p123456📚 六、扩展:如何初始化数据库结构?
如果你有一个初始化 SQL 文件,想在容器启动时执行,只需添加一行挂载:
1volumes:
2 - ./mysql/db:/docker-entrypoint-initdb.d💡 把你的 init.sql 放到 ./mysql/db/ 目录下,第一次启动容器时就会自动导入 👏
🧹 七、日志在哪看?
日志都挂载在 ./mysql/logs 目录,方便排查问题 💡
你也可以进入容器用命令查看:
1docker logs mysql✅ 八、总结
📝 本文介绍了如何使用 Docker Compose 快速部署 MySQL 5.7,并实现配置、数据、日志的本地挂载。附带通用配置 my.cnf,开箱即用!
📎 配置可选项丰富,轻松应对开发 & 测试场景 🔐 建议上线时注意密码、数据安全 😎 表情包教程更轻松(你说是不是)
🤔 有问题?
欢迎评论区留言交流,或者来杯 ☕ 边喝边聊~
1
2---
3
4需要我把这篇文章打包为 `.md` 文件下载也可以告诉我!📡
👤
作者:
小白丶
🌐
版权:
本站文章除特别声明外,均采用
All Rights Reserved
协议,转载请注明来自
小白丶 Blog!
- 01CentOS 7 上安装 Docker 2026-07-02
- 02🐳 使用 Docker 快速部署 MySQL 5.7(附配置挂载) 2026-07-02
- 03