SELECT 결과의 출력물 제어(pager)
mysql> pager more -d
mysql> pager tee /path/to/result.txt | more -d
mysql> pager tee -a /path/to/result.txt | more -d
mysql> pager cat > /path/to/result2.txt

출처 : http://linuxchannel.net/


많이 사용하지 않은 MySQL pager 설정에 관한 내용입니다.
...

요약 :
mysql> pager more -d

[MySQL] SELECT 결과의 출력물 제어(pager)

1. interactive 모드(none batch 모드)에서

이 모드는 보통 'mysql>' 이라는 프롬프트가 표시되는 모드를 말합니다.
(4.x.x 에서는 MYSQL_PS1 이라는 재미있는 환경 변수 설정이 가능하더군요)

mysql> nopager
PAGER set to stdout
mysql> 
PAGER set to stdout
mysql> h
...

이와 같이 기본 PAGER 값은 '표준출력(stdout)' 입니다.

그럼 예를 들어서,

mysql> SELECT .... ;

이와 같이 검색 결과에 대한 그 line 수가 화면 스크린 line 수 보다 많으면
주욱 밑으로 내려가서 제일 위쪽의 결과는 보질 못합니다.
(물론 스크롤이 지원한다면 볼 수 있지만, 이것도 한계가 있죠.. 보통 1500 line?)

이것을 예전에 SELECT ..... LIMIT 300,100;
이런식으로 무식하게(?) 입력했던 기억이 나네요..

이런 화면출력을 command line 의 more 나 less 처럼 보여줄 수 있는 설정이
PAGER 설정입니다.
(참고로, win32 에서는 작동하지 않는다고 하네요.. 그런 명령어가 없기 때문에 ?)
(또한 batch, -B 모드에서는 작동하지 않습니다.)

그럼 PAGER를 설정해 봅시다.

PAGER 설정 방법은

mysql> pager PAGER
or
mysql> P PAGER

입니다. 

- PAGER 부분에는 ' 또는 " 로 묶어주면 안되고,
- 여기에 more 나 less, cat, tee ... 등등의
- UNIX/LINUX 명령어와 이들의 옵션을 설정해 주면 됩니다.
- Off 방법은 nopager 나 명령어를 내리면 됩니다.

간단하게,

mysql> pager more
or
mysql> pager more -d
PAGER set to more -d
mysql>
mysql> SELECT ... ;
...
...
--More--[Press space to continue, 'q' to quit.]


그럼 이번에는 화면에 출력함과 동시에(more) 그 결과물을 파일로
저정해 봅시다.

이때는 화면 출력과 파일 저장을 한꺼번에 할려면 tee 라는 명령어를
사용하면 되겠죠.
이모드에서 'tee', 'T' 라는 명령와 같은 역할입니다.

T 는 계속적인 화면 캡춰라고 생각하면 되고,
실제로 PAGER 에서 설정한 tee 의 결과물과는 조금 틀림.
(T 는 화면상에 출력된 모든 에러, SQL 문, 출력물 등등이 포함됨)

mysql> pager tee /path/to/result.txt | more -d
PAGER set to tee /path/to/result.txt | more -d

more 를 파이프(|) 앞에 두면 안됩니다.

그런데 이 PAGER 설정에 의한 result.txt 파일은 항상 최근의 결과물만
저장됩니다. 이유는 아시겠죠?
result.txt 파일에 계속적인 결과물을 추가하고자 한다면,

mysql> pager tee -a /path/to/result.txt | more -d

이렇게 tee 에 -a 옵션을 사용해야 합니다.
(-a : append)

그럼 이번에 그냥 화면출력 없이 파일에 저장만 해봅시다.

mysql> pager cat > /path/to/result2.txt
or
mysql> pager cat >> /path/to/result2.txt

아주 간단하죠?
나머지는 각자 응용해 보세요.


2. command line 모드에서(--pager='more -d')

3. .my.cnf 에 설정(pager = more -d)

4. 출력물 포맷 설정(--table, --html)

+ Recent posts