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)