章节
Mysql 部署
进度 11/35 · 31%
预计 2 分钟读完
更新于 2026-07-20
Mysql 部署
方法一(推荐)
在一个 yaml 文件中部署 MySQL 和 Music Tag Web 两个容器。
编写 docker-compose.yml 文件
version: '3'
services:
# MySQL 数据库服务
db:
image: mysql:latest
container_name: mysql
restart: always
command: #使用 command 可以覆盖容器启动后默认执行的命令
--character-set-server=utf8mb4
--collation-server=utf8mb4_unicode_ci
environment:
MYSQL_ROOT_PASSWORD: your_root_password # 修改为你的 MySQL 密码
MYSQL_DATABASE: music_tag # 数据库名称,无需修改
volumes:
- ./mysql-data:/var/lib/mysql # 数据持久化存储目录
# Music Tag Web 服务
music-tag:
image: xhongc/music_tag_web:latest
container_name: music-tag-web
ports:
- "8002:8002" # 主机端口:容器端口
volumes:
- /path/to/your/music:/app/media # 修改为你的音乐文件目录
- /path/to/your/config:/app/data # 修改为你的配置文件存储目录
environment:
- MYSQL_HOST=db # 数据库主机名,使用服务名, 不需要修改
- MYSQL_PASSWORD=your_root_password # 与上面的 MySQL 密码一致
- MYSQL_DB_NAME=music_tag # 数据库名称,无需修改
- MYSQL_USER=root # MySQL 用户名,无需修改
- MYSQL_PORT=3306 # MySQL 端口,无需修改
- WORKER_NUM=8 # 后台任务工作线程数,可根据服务器性能调整
restart: always
depends_on:
- db # 依赖于 MySQL 服务
修改配置说明
在启动容器前,你需要修改以下配置:
- MySQL 密码:将
your_root_password替换为你自己的强密码。 - 音乐文件目录:将
/path/to/your/music替换为你本地音乐文件所在的目录路径。 - 配置文件目录:将
/path/to/your/config替换为你配置文件存储目录,没有的话新建一个目录即可
提示:首次部署时,建议不额外修改任何默认配置。待系统完全启动并运行正常后,再根据实际需求针对性调整或新增配置,以便快速定位部署过程中可能出现的问题。
启动容器
完成配置修改后,在项目目录下执行以下命令启动容器:
docker-compose up -d
这个命令会:
- 下载所需的镜像
- 创建并启动两个容器
-d参数表示在后台运行
验证部署
- 检查容器是否正常运行:
- 访问 Music Tag Web:
打开浏览器,访问http://你的服务器IP:8002,应该能看到 Music Tag Web 的界面。
方法二
分开部署 mysql 和 music tag web 容器
安装Mysql
docker命令
docker run -p 3306:3306 --name mysql
-v /your/mysql/data:/var/lib/mysql
--restart=always
-e MYSQL_ROOT_PASSWORD=your_root_password
-e MYSQL_DATABASE=music_tag
-d mysql:latest
docker compose 命令
version: '3'
services:
db:
image: mysql:latest
restart: always
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: music_tag
volumes:
- /your/mysql/data:/var/lib/mysql
修改为你的配置:
/your/mysql/data 改为你本地的目录,用于持久化 mysql 中的数据,重新部署容器数据不会丢失
your_root_password 改为你的 mysql 密码
在 Music Tag Web 中配置 mysql
如果你已经安装过 Music Tag Web 的 docker 应用,首先停止Music Tag Web 容器,重新在使用下面命令启动。/app/media 和/app/data 文件目录不需要删除。
docker 命令
docker run -d
--name music-tag-web
-p 8002:8002
-v /path/to/your/music:/app/media
-v /path/to/your/config:/app/data
-e MYSQL_HOST=192.168.1.24
-e MYSQL_PASSWORD=123456
-e MYSQL_DB_NAME=music_tag
-e MYSQL_USER=root
-e MYSQL_PORT=3306
-e WORKER_NUM=8
--restart always
xhongc/music_tag_web:latest
详细见 Docker部署
docker compose 命令
version: '3'
services:
music-tag:
image: xhongc/music_tag_web:latest
container_name: music-tag-web
ports:
- "8002:8002"
volumes:
- /path/to/your/music:/app/media
- /path/to/your/config:/app/data
environment:
- MYSQL_HOST=192.168.1.24 # mysql 局域网ip地址(没有可以不填,默认使用 sqlite)
- MYSQL_PASSWORD=123456 # mysql密码(没有可以不填,默认使用 sqlite)
- MYSQL_DB_NAME=music_tag # 数据表名称(没有可以不填,默认使用 sqlite)
- MYSQL_USER=root # mysql 用户名(默认使用 root)
- MYSQL_PORT=3306 # mysql 端口(默认使用 3306)
- WORKER_NUM=8 # 后台并发执行任务的worker数量
restart: always
MYSQL_HOST: mysql 局域网ip地址
MYSQL_PASSWORD: 上文配置的your_root_password
MYSQL_DB_NAME: 配置的数据库名称, 上文中为:music_tag
MYSQL_USER:默认为 root, 如果你没额外配置。
MYSQL_PORT: 默认端口为 3306
配置完成后打不开 music tag web?
请检查:
- MySQL 端口是否暴露出来
- music tag web 里是否能访问到 mysql
- 如果是原先就部署有 mysql,是否创建了 music_tag 的数据库
- 检查数据库的配置是否有拼写错误
- mysql 版本太新了, 可以使用 mysql:5.7
基本能解决 90% 的问题了
来源:https://xiers-organization.gitbook.io/music-tag-web-v2/jin-jie-pei-zhi/mysql-bu-shu