就我而言,我有 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
尝试转储magento
、exec
、952988c62c2c
和mysql
表。