`docker exec -i db_mysql mysqldump` do d d d d d d d d d d d od

发布于 2025-02-12 13:13:15 字数 950 浏览 0 评论 0原文

我有数据库wp_almond时,我有一个带有数据库wp_almond的mySQL docker容器(db_mysql

当我尝试使用docker exec -i exec -i db_mysql mysqldump时, 工作

$ docker exec -i db_mysql mysqldump -u root -p wp_almond > wp_almond.sql
$ docker exec -i db_mysql ls # Notice that "wp_almond.sql" was not created
bin
boot
dev
docker-entrypoint-initdb.d
entrypoint.sh
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var

但输入容器,然后进行mysqldump内部工作

$ docker exec -it db_mysql sh
$ mysqldump -u root -p wp_almond > wp_almond.sql
$ ls # Here "wp_almond.sql" is present
bin
boot
dev
docker-entrypoint-initdb.d
entrypoint.sh
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
wp_almond.sql

,我不知道为什么,我需要这样做带有sh的容器,用于备份脚本

I have a MySQL Docker container (db_mysql) with database wp_almond

When I try to dump it with docker exec -i db_mysql mysqldump it doesn't work

$ docker exec -i db_mysql mysqldump -u root -p wp_almond > wp_almond.sql
$ docker exec -i db_mysql ls # Notice that "wp_almond.sql" was not created
bin
boot
dev
docker-entrypoint-initdb.d
entrypoint.sh
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var

But entering the container and then doing the mysqldump inside works

$ docker exec -it db_mysql sh
$ mysqldump -u root -p wp_almond > wp_almond.sql
$ ls # Here "wp_almond.sql" is present
bin
boot
dev
docker-entrypoint-initdb.d
entrypoint.sh
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
wp_almond.sql

I don't know why, I need to do it without entering the container with sh for a backup script

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

故笙诉离歌 2025-02-19 13:13:15

当您运行

docker exec -i db_mysql mysqldump -u root -p wp_almond

时,将输出产生到stdout(oft host终端)

时,当您运行

docker exec -i exec -i exec -i db_mysql mysqlm mysqldump-- u root -p wp_almond> wp_almond.sql

它只是将终端的输出重定向到主机本身。

如果要将其保存在容器中,请尝试使用此改为

docker exec -i db_mysql sh -c“ mysqldump -u root -p wp_almond> wp_almond.sql”>

When you run

docker exec -i db_mysql mysqldump -u root -p wp_almond

then the output is produced to stdout (of your host terminal)

Therefore, when you run

docker exec -i db_mysql mysqldump -u root -p wp_almond > wp_almond.sql

It simply redirects the output of your terminal to file on your host itself.

If you want to save it in the container, try this instead

docker exec -i db_mysql sh -c "mysqldump -u root -p wp_almond > wp_almond.sql"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文