You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose执行mysqldump时输出打印而非写入文件的解决方法

问题解决:Docker Compose中mysqldump输出未写入容器内/tmp文件

问题原因

你执行的命令里,> /tmp/mydb.sql是在本地主机层面执行的重定向操作,而非在db容器内部运行。mysqldump的输出实际被写入了你本地机器的/tmp/mydb.sql,而非容器内的对应路径,这就是容器里找不到文件的核心原因。

解决方案

方案1:将输出写入容器内部的/tmp目录

需要让重定向操作在容器内部执行,用bash -c包裹完整命令:

docker compose exec db bash -c 'mysqldump -uroot mydb > /tmp/mydb.sql'

执行后,可进入容器验证文件是否存在:

docker compose exec db ls -l /tmp/mydb.sql

方案2:将输出导出到本地主机(如果需求是本地备份)

如果你的真实需求是把备份文件保存到本地而非容器内,直接使用你原来的命令即可,但要到本地机器的/tmp目录查看文件。也可以指定本地的具体路径,比如当前工作目录:

docker compose exec db mysqldump -uroot mydb > ./mydb.sql

内容的提问来源于stack exchange,提问作者Coder1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 01:10:29