为什么我无法将数据库从一个容器传输到另一个容器?

为什么我无法将数据库从一个容器传输到另一个容器?

就我而言,我有 2 个 mariadb 容器,运行着 2 个独立的卷:

CONTAINER ID   IMAGE                                 COMMAND                  CREATED          STATUS                    PORTS                                                                                                                                                 NAMES
952988c62c2c   mariadb:10.4                          "docker-entrypoint.s…"   22 minutes ago   Up 22 minutes             3306/tcp                                                                                                                                              php_dev_db_1
799f2226367f   mariadb:10.4                          "docker-entrypoint.s…"   4 days ago       Up 30 minutes (healthy)   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp                                                                                                             test_magento-db-1

我尝试通过管道将数据库从一个数据库传输到另一个数据库:

docker exec 799f2226367f mysqldump -u magento -pmagento magento > docker exec 952988c62c2c mysql -u magento -pmagento magento

但我收到错误:

mysqldump: Couldn't find table: "exec"

我不知道为什么。

答案1

我尝试通过管道将数据库从一个数据库传输到另一个数据库

因此您需要使用管道 ( |) 而不是重定向 ( >):

docker exec 799f2226367f mysqldump -u magento -pmagento magento | docker exec 952988c62c2c mysql -u magento -pmagento magento

发生错误是因为重定向仅消耗以下单词,因此您的命令相当于

docker exec 799f2226367f mysqldump -u magento -pmagento magento exec 952988c62c2c mysql -u magento -pmagento magento > docker

IE mysqldump尝试转储magentoexec952988c62c2cmysql表。

相关内容