programing

도커 컨테이너에서 SQL 스크립트 실행 중

javajsp 2023. 7. 23. 14:02

도커 컨테이너에서 SQL 스크립트 실행 중

mysql을 실행하는 도커 컨테이너가 있는데 컨테이너에 .sql 파일을 푸시한 다음 mysql이 그 안에 있는 명령을 실행하도록 하고 싶습니다.첫 번째 단계는 매우 간단합니다.

docker cp ./dummy.sql <container_id>:/

여기서 명령줄에서 mysql을 실행하여 방금 컨테이너에 푸시한 파일을 가리킵니다.

docker exec <container_id> mysql -u root -ppassword < /dummy.sql

이 명령은 컨테이너가 아닌 로컬에서 /sample.sql을 stdin으로 사용하려고 하는 것 같습니다.저는 또한 컨테이너 ID 뒤에 인용문을 붙여봤는데 역시 작동하지 않는 것 같습니다.

또한 명령어가 들어 있는 .sh 파일을 도커 컨테이너에 푸시한 다음 실행하려고 했지만, 그것은 더 이상적이지 않고 작동하지도 않습니다.조언이 있습니까?

명령에서 파이프 리디렉션을 수행할 경우 문자열로 전달/bin/sh:

docker exec <container_id> /bin/sh -c 'mysql -u root -ppassword </dummy.sql'

스크립트를 먼저 복사할 필요가 없습니다.스크립트가 호스트에 있는 경우:

docker exec -i <container_name> mysql -u root -ppassword <mydb> < /path/to/script.sql

또는 스크립트 내에 Usedb 지시어가 포함되어 있는 경우:

docker exec -i <container_name> mysql -u root -ppassword < /path/to/script.sql

시도:

docker exec <container_id> 'mysql -u root -ppassword </dummy.sql'

언급URL : https://stackoverflow.com/questions/34779894/executing-sql-scripts-on-docker-container