Как заставить импорт дампа с docker exe c? - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь импортировать базу данных в мой mysql контейнер в Docker, но у меня были некоторые ошибки с файлом sql.

Я использовал этот код для импорта данных:

docker exec -i MYCONTAINER mysql -uMYUSER -pMYPASS@ -f -D MYDATABASE < MYFILE.sql

Но все равно возвращает ошибку о синтаксисе из файла, я не могу открыть этот файл, потому что он слишком большой, единственный способ сделать это с помощью mysqldump. У кого-нибудь еще есть способ импортировать этот файл?

Заранее спасибо!

1 Ответ

1 голос
/ 11 марта 2020

Когда вы запускаете команду docker exec <container_name> <command>, command будет выполняться внутри контейнера, и поскольку MYFILE.sql не существует внутри этого контейнера, он обязательно выдаст ошибки.

Другая проблема заключается в что контейнер уже создан, вы не можете смонтировать файл внутри, если не хотите воссоздать контейнер.

Вот обходной путь для этой проблемы:

  1. Копировать файл sql в контейнер
docker cp ./MYFILE.sql MYCONTAINER:/tmp/MYFILE.sql
Теперь, когда файл уже находится внутри контейнера по пути /tmp/MYFILE.sql, вы можете выполнить свою команду как
docker exec -i MYCONTAINER mysql -uMYUSER -pMYPASS@ -f -D MYDATABASE < /tmp/MYFILE.sql
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...