docker mysql:mysqldump 无法创建转储文件。
docker-compose.yaml
version: "3"
services:
mysql:
container_name: mysql
image: mysql:8.0.33
environment:
- MYSQL_ROOT_PASSWORD=123456
user: 115:115
volumes:
- ./backup:/opt/backup
尝试过:
sudo docker exec mysql mysqldump -u root -p123456 --no-tablespaces --databases my_db > /opt/backup/my_db.sql
错误:
-bash: /opt/backup/my_db.sql: No such file or directory
目录位于:
sudo docker exec mysql ls -l /opt/backup
该目录的所有者是115:115(mysql)。可以在目录下创建文件:
sudo docker exec mysql touch /opt/backup/foo.txt
如果转储到当前目录,没有目录“/opt/backup”,则不会出现错误消息。但在根目录下找不到转储的文件。 (当前目录是“sudo docker exec mysql pwd”看到的根目录)。
同样,如果转储到/tmp目录,不会出现错误信息,但/tmp下不会创建文件。
sudo docker exec mysql mysqldump -u root -p123456 --no-tablespaces --databases my_db > /tmp/my_db.sql
如何从 mysql docker 容器转储 mysql 数据?
使用
>
,您当前将输出重定向到主机的 /opt/backup/my_db.sql
,而不是在容器内
尝试:
docker exec mysql bash -c 'mysqldump -u root -p123456 --no-tablespaces --databases my_db > /opt/backup/my_db.sql'