首页 > 解决方案 > 如何从主机执行mysqldump命令到mysql docker容器

问题描述

我想为在 docker 容器中运行的数据库创建 mysql 转储。但是我不想进入容器并执行命令,而是从主机执行。有没有办法做到这一点。我尝试了几件事,但可能我对命令有误。

docker exec -d mysql sh mysqldump -uroot -pSomePassword DBName > /dumps/MyNewDump.sql

docker exec -d mysql sh $(mysqldump -uroot -pSomePassword DBName > /dumps/MyNewDump.sql)

docker exec -d mysql mysqldump -uroot -pSomePassword DBName > /dumps/MyNewDump.sql

dumps目录已经绑定到主机。

这些命令似乎不是正确的方法,或者可能根本不是正确的方法。这些总是以错误告终:

bash: /dumps/MyNewDump.sql: 没有这样的文件或目录

但是,如果我只是mysqldump -uroot -pSomePassword DBName > /dumps/MyNewDump.sql在容器内运行,它就可以正常工作。

标签: mysqldockerfedora

解决方案


这对我有用(只需替换容器 ID):

docker exec 1d3595c0ce87 sh -c 'mysqldump -uroot -pSomePassword DBName > /dumps/MyNewDump.sql'

mysqldump: [Warning] Using a password on the command line interface can be insecure.

推荐阅读