docker mysql:mysqldump 无法创建转储文件

问题描述 投票:0回答:1

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 数据?

mysql docker ubuntu database-backups
1个回答
1
投票

使用

>
,您当前将输出重定向到主机的
/opt/backup/my_db.sql
,而不是在容器内

尝试:

docker exec mysql bash -c 'mysqldump -u root -p123456  --no-tablespaces --databases my_db > /opt/backup/my_db.sql'
© www.soinside.com 2019 - 2024. All rights reserved.