3.5 배치 모드에서의 MySQL의 사용
이전 섹션에서는 mysql을 대화식으로 사용하여 쿼리를 입력하고 결과를 표시했습니다. mysql을 배치 모드로 실행할 수 있습니다. 이를 위해 실행하는 명령을 파일에 작성하고 그 파일에서 입력을 읽을 수 있도록 mysql에 지시합니다.
shell> mysql < batch-file
mysql을 Windows에서 실행하는 경우 파일의 일부 특수 문자로 인해 문제가 발생하면 다음과 같이 실행할 수 있습니다.
C : \> mysql -e "source batch-file "
명령 줄에서 연결 매개 변수를 지정할 필요가있는 경우, 명령은 다음과 같습니다.
shell>mysql -h host -u user -p < batch-file
Enter password :********
이 방법으로 mysql을 사용하려면 스크립트 파일을 작성하고 스크립트를 실행하게됩니다.
스크립트의 일부 문에서 오류가 발생해도 스크립트를 계속하려면 --force
명령 행 옵션을 사용합니다.
왜 스크립트를 사용하는 것일까 요. 몇 가지 이유는 다음과 같습니다.
쿼리를 반복하는 경우 (매일, 매주 등) 스크립트하면 실행할 때마다 입력 할 필요가 없습니다.
기존 쿼리 스크립트 파일을 복사하고 편집하여 유사한 새로운 쿼리를 만들 수 있습니다.
배치 모드는 쿼리의 개발시에도 도움이됩니다. 특히 여러 줄로 명령 이상의 문에 의한 명령 시퀀스를 사용하는 경우에 유용합니다. 실수가 있어도, 모든 것을 재 입력 할 필요는 없습니다. 스크립트를 편집하여 오류를 수정 한 후 mysql에서 다시 실행하기 만하면됩니다.
다량의 출력을 생성하는 쿼리의 경우 화면에서 스크롤하는 출력을 보는 대신, pager를 통해 출력 할 수 있습니다.
shell>
mysql < batch-file | more
나중에 처리 할 수 있도록 출력을 파일로 캡처 할 수 있습니다.
shell>
mysql < batch-file > mysql.out
스크립트를 배포하면 다른 사용자도 동일한 명령을 실행할 수 있습니다.
cron 작업에서 쿼리를 실행하는 경우 등 인터랙티브에는 사용하지 못할 수 있습니다. 이 경우 배치 모드를 사용해야합니다.
mysql을 배치 모드로 실행했을 때의 기본 출력 형식은 대화식으로 사용하는 경우와는 달리, 더 간결합니다. 예를 들어, mysql을 대화식으로 실행하면 SELECT DISTINCT species FROM pet
의 출력은 다음과 같이됩니다.
+---------+ | species | +---------+ | bird | | cat | | dog | | hamster | | snake | +---------+
이에 대해 배치 모드의 출력은 다음과 같이됩니다.
species bird cat dog hamster snake
배치 모드에서 인터랙티브 출력 형식의 데이터를 검색하려면 mysql -t
를 사용합니다. 실행 한 명령을 출력에 메아리하려면 mysql -vvv
를 사용합니다.
source
명령 또는 \.
명령을 사용하면 mysql 프롬프트에서도 스크립트를 사용할 수 있습니다.
mysql>source filename ;
mysql>\. filename
자세한 내용은 섹션 4.5.1.5 "텍스트 파일에서 SQL 문을 실행" 을 참조하십시오.