도커 컨테이너에서 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
'programing' 카테고리의 다른 글
Python: 하위 패키지 또는 하위 모듈 가져오기 (0) | 2023.07.23 |
---|---|
PHP에서 아포스트로피(') 대신 ™를 받는 중 (0) | 2023.07.23 |
MySQL(MardiaDB) 종속 테이블의 최신 레코드에서 정보를 가져오는 방법은 무엇입니까? (0) | 2023.07.23 |
페이지 로드가 완료될 때까지 페이지 로드 div를 표시하는 방법은 무엇입니까? (0) | 2023.07.23 |
PHP에서 Bash 명령 실행 (0) | 2023.07.23 |