MySQL의 클라이언트 명령줄 도구에는 사용자 친화적인 기능이 많이 있으며, 어떤 측면에서는 Oracle의 sqlplus보다 사용자 친화적이라고 할 수도 있습니다. 물론 전체적으로는 sqlplus가 더 편리하긴 합니다. 아마도 제가 sqlplus에 더 익숙하기 때문이겠지요. 다음은 MySQL 명령줄에서 일반적으로 사용되는 몇 가지 기능입니다.
1. G를 사용하여 행별로 결과를 세로로 표시합니다.
행이 너무 길어서 이 행을 표시해야 하는 경우 결과가 매우 불편해 보입니다. 각 행의 값을 세로로 출력하려면 SQL 문이나 명령 뒤에 세미콜론 대신 G를 사용합니다. 이는 MySQL을 다른 데이터베이스 도구와 구별하는 가장 친숙한 기능일 수도 있습니다.
mysql> select * from db_archivelog\G *************************** 1. row *************************** id: 1 check_day: 2008-06-26 db_name: TBDB1 arc_size: 137 arc_num: 166 per_second: 1.6 avg_time: 8.7
2. 페이저를 사용하여 표시 모드를 설정하세요
선택한 결과 세트가 여러 화면을 초과하는 경우 이전 결과가 순식간에 지나가서 볼 수 없습니다. 페이저를 사용하면 os에서 more 또는 less를 호출하여 쿼리 결과를 표시하도록 설정할 수 있습니다. 이는 대용량 파일을 보기 위해 os에서 more 또는 less를 사용하는 것과 동일한 효과가 있습니다.
더 많이 사용
mysql> pager more PAGER set to ‘more’ mysql> P more PAGER set to ‘more’
덜 사용
mysql> pager less PAGER set to ‘less’ mysql> P less PAGER set to ‘less’
stdout으로 복원
mysql> nopager PAGER set to stdout
tee를 사용하여 실행 결과를 저장합니다. 파일로
명령줄의 결과를 외부 파일에 저장할 수 있는 sqlplus의 스풀 기능과 유사합니다. 이미 존재하는 파일을 지정하면 결과가 파일에 추가됩니다.
mysql> tee output.txt Logging to file ‘output.txt’
또는
mysql> T output.txt Logging to file ‘output.txt’ mysql> notee Outfile disabled.
또는
mysql> t Outfile disabled
4. OS 명령 실행
mysql> system uname Linux mysql> ! uname Linux
5. >
mysql> source test.sql +—————-+ | current_date() | +—————-+ | 2008-06-28 | +—————-+ 1 row in set (0.00 sec)또는
mysql> . test.sql +—————-+ | current_date() | +—————-+ | 2008-06-28 | +—————-+ 1 row in set (0.00 sec)다른 기능도 있습니다. help 또는 ?를 통해 MySQL 명령줄에서 지원되는 일부 명령을 얻을 수 있습니다.
위 주제에 이어 mysql 명령줄에 대한 몇 가지 팁을 소개합니다
1. 결과를 html 형식으로 출력합니다
mysql 클라이언트 매개변수 –html 또는 -T를 사용하면 모든 SQL 쿼리 결과가 자동으로 생성됩니다. HTML 테이블 코드
$ mysql -uroot –html Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 3286 Server version: 5.1.24-rc-log MySQL Community Server (GPL) Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer. mysql> select * from test.test; 2 rows in set (0.00 sec)2. 결과를 xml 형식으로 출력
은 위와 유사합니다. –xml 또는 -X 옵션을 사용하여 결과를 xml 형식으로 출력합니다
$ mysql -uroot –xml Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 3287 Server version: 5.1.24-rc-log MySQL Community Server (GPL) Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer. mysql> select * from test.test; 2 rows in set (0.00 sec)mysql의 –prompt= 옵션을 사용하거나, mysql 명령줄 환경에 진입한 후 프롬프트 명령을 사용하면 프롬프트를 수정할 수 있습니다
mysql> prompt u@d> PROMPT set to ‘u@d>’ root@(none)>use mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed root@mysql>
여기에서는 구성 파일을 통해 MySQL 명령줄을 설정하는 매개변수를 소개합니다.
MySQL 명령줄의 일부 작동 매개변수는 /etc/my.cnf 구성 파일의 [mysql] 섹션을 통해 설정할 수 있습니다. 예:
프롬프트 설정을 통해 사용자 이름, 현재 데이터베이스 및 현재 시간을 표시합니다. 구성 파일에서 이중 슬래시를 사용하는 것이 가장 좋습니다.[mysql] prompt=\u@\d \r:\m:\s> pager=’less -S’ tee=’/tmp/mysql.log’사용 페이저 설정을 통해 쿼리 결과를 표시하려면 -S는 화면 너비를 초과하는 줄을 자르는 것을 의미합니다. 줄이 너무 길면 MySQL의 표시 형식이 지저분해 보입니다. 전체 줄을 보려면 권장됩니다. G를 사용하여 라인을 수직으로 출력합니다. 물론 더 많은 매개변수를 추가하여 출력을 제어할 수도 있습니다.
root@poster 10:26:35>
tee는 MySQL 실행의 모든 출력을 로그 파일에 저장합니다. 매우 긴 줄을 자르는 데 less -S를 사용하더라도 전체 결과는 여전히 로그에 기록됩니다. 프롬프트를 통해 설정됩니다. 시간 표시를 통해 로그 파일에서 각 작업의 시간을 쉽게 볼 수 있습니다. tee의 결과가 파일에 추가되므로 정기적으로 로그 파일을 지워야 합니다.