• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 서비스
    • MySQL유지보수
    • MySQL라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.1 한글메뉴얼) [close]
  • 1. MySQL 5.1 Reference Manual
  • 2. Installing and MySQL 업그레이드하기
  • 3. 사용 설명서 (Tutorial)
  • 1. 서버에 연결하기 및 연결 끊기
    2. 쿼리 입력하기
    3. 데이터베이스 생성하기 및 사용하기
    4. 데이터베이스 및 테이블 관련 정보 가져오기
    5. Batch 모드에서 mysql 사용하기
    6. 일반적인 쿼리 예제
    7. Apache와 함께 MySQL 사용하기
  • 4. MySQL 프로그램 사용하기
  • 5. 데이터베이스 관리
  • 6. 리플리케이션
  • 7. 최적화 (Optimization)
  • 8. 클라이언트 및 유틸리티 프로그램
  • 9. 언어 구조 (Language Structure)
  • 10. 문자 셋 지원
  • 24. API 및 라이브러리
  • 25. Connectors

3.5. Batch 모드에서 mysql 사용하기

 

앞의 섹션에서, 여러분은 mysql을 사용해서 쿼리를 입력하고 그 결과를 볼 수가 있었다. 여러분은 mysql을 배치 모드에서도 사용할 수 있다. 이렇게 사용하기 위해서는, 명령어를 구동시키고 싶은 파일 안에 기록해 놓은 다음에, mysql이 이 파일에서 입력 값을 읽어 오도록 명령하면 된다:

 

shell> mysql < batch-file

 

윈도우 환경에서 mysql를 구동시킬 때 파일 안에 문제를 일으키는 특수 문자가 있는 경우에는, 아래의 것을 실행한다:

 

C:\> mysql -e "source batch-file"

 

명령어 라인에서 연결 파라미터를 지정하고자 할 경우의 명령어는 다음과 같이 된다:

 

shell> mysql -h host -u user -p < batch-file

Enter password: ********

이런 방식으로mysql을 사용할 때에는, 스크립트 파일을 하나 만든 다음에 스크립트를 실행시킨다.

스크립트 안에 있는 명령어 중에 하나가 에러를 발생시킨다고 하더라도 스크립트를 계속 진행 시키고자 한다면, --force 명령어 라인 옵션을 사용해야 한다.

 

왜 스크립트를 사용해야 하는가? 여기에 몇 가지 이유가 있다:

·         하나의 쿼리를 반복적으로 사용하는 경우라면 (즉, 내일 또는 매주), 스크립트를 사용해서 매번 반복적으로 입력하는 것을 피할 수 있다.

·         이미 있는 유사한 스크립트 파일을 복사하고 편집해서 새로운 쿼리를 만들 수 있다.

·         배치 모드는 쿼리를 개발할 경우에 유용한데, 특히 다중 라인 명령어 또는 다중 명령어 시퀀스를 위한 것을 개발할 때 유용하다. 여러분이 실수를 한다고 하더라도, 모든 것을 다시 타이핑할 필요가 없다. 간단히 스크립트를 수정해서 에러를 바로 잡은 다음에, mysql이 이것을 다시 실행하도록 하면 된다.

  • 대용량의 결과를 만들어 내는 쿼리를 가지고 있다면, 화면에 스크롤 되는 결과를 얻는 것보다는 종이에 출력을 얻는 것이 나을 것이다:

shell> mysql < batch-file | more

  • 향후 진행을 위해 파일로 결과를 보낼 수도 있다:

shell> mysql < batch-file > mysql.out

·         여러분이 작성한 스크립트를 다른 사람에게 전달해서 그 사람들이 여러분과 동일한 명령어를 실행하도록 할 수 있다.

·         어떤 상황에서는 상호 교류 동작 (interactive)을 할 수 없는데, 예를 들면, 여러분이 cron 작업을 통해서 쿼리를 구동 시킬 경우에는 반드시 배치 모드를 사용해야 한다.

 

디폴트 결과 포맷은 배치 모드에서 mysql을 사용할 때와 상호 교류 동작을 사용할 때가 다르게 나타난다. 예를 들면, SELECT DISTINCT species FROM pet은 mysql이 상호 교류적으로 구동할 때 다음과 같이 나온다:

 

+---------+

| species |

+---------+

| bird    |

| cat     |

| dog     |

| hamster |

| snake   |

+---------+

 

하지만 배치 모드에서는 다음과 같이 결과가 나온다:

 

species

bird

cat

dog

hamster

snake

만약에 배치 모드에서 상호 교류적인 결과값 포맷을 얻고자 한다면, mysql –t를 사용한다. 실행된 명령문에 결과 값을 다시 돌려 보내고 싶다면 mysql –vvv를 사용한다.

 

또한, source 또는 \. 명령어를 사용해서 mysql 프롬프트상에서 스크립트를 사용할 수도 있다:

 

mysql> source filename;

mysql> \. filename

서울시 강남구 영동대로 602 6층  TEL: 02-6061-0006
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved