4.5.1.2 mysql 명령
mysql은 사용자가 발행하는 각 SQL 문을 실행을 위해 서버로 전송합니다. mysql 자체가 해석하는 명령도 있습니다. 이러한 명령의 목록을 표시하려면 mysql>
프롬프트에서 help
또는 \h
를 입력합니다.
mysql> help
List of all MySQL commands :
Note that all text commands must be first on line and end with ';'
? (\?) Synonym for`help '.
clear (\ c) Clear command.
connect (\ r) Reconnect to the server. Optional arguments are db and host.
delimiter (\ d) Set statement delimiter.
edit (\ e) Edit command with $ EDITOR.
ego (\ G) Send command to mysql server, display result vertically.
exit (\ q) Exit mysql. Same as quit.
go (\ g) Send command to mysql server.
help (\ h) Display this help.
nopager (\ n) Disable pager, print to stdout.
notee (\ t) Do not write into outfile.
pager (\ P) Set PAGER [to_pager]. Print the query results via PAGER.
print (\ p) Print current command.
prompt (\ R) Change your mysql prompt.
quit (\ q) Quit mysql.
rehash (\ #) Rebuild completion hash.
source (\) Execute an SQL script file. Takes a file name as an argument.
status (\ s) Get status information from the server.
system (\!) Execute a system shell command.
tee (\ T) Set outfile [to_outfile]. Append everything into given
outfile.
use (\ u) Use another database. Takes database name as argument.
charset (\ C) Switch to another charset. Might be needed for processing
binlog with multi-byte charsets.
warnings (\ W) Show warnings after every statement.
nowarning (\ w) Do not show warnings after every statement.
For server side help, type 'help contents'
mysql이 --binary-mode
옵션에서 시작되는 경우 비대화 형 모드의 charset
및 delimiter
(mysql에 파이프 된 입력하거나 source
명령으로로드 된 입력)를 제외하고 모든 mysql 명령은 무효가됩니다 .
각 명령은 각각 긴 형식과 짧은 형식이 있습니다. 긴 형식은 대소 문자를 구분하지 않지만 짧은 형식으로 구분됩니다. 긴 형식은 옵션 세미콜론 종단 기호가 뒤에 계속 될 수도 있지만 짧은 형식이 아닙니다.
여러 줄의 /* ... */
주석에 짧은 형식의 명령을 사용하는 것은 지원되지 않습니다.
help [
,arg
]\h [
,arg
]\? [
,arg
]? [
arg
]사용 가능한 mysql 명령을 나열하는 도움말 메시지를 표시합니다.
help
명령에 인수를 지정했을 경우, mysql은 서버 측의 도움말로 이동하여 MySQL 레퍼런스 매뉴얼의 내용에서 검색하는 문자열로 인수를 사용합니다. 자세한 내용은 섹션 4.5.1.4 "mysql 서버 측의 도움말" 을 참조하십시오.charset
,charset_name
\C
charset_name
기본 문자 집합을 변경하고
SET NAMES
명령문을 발행합니다. 이렇게하면 자동 재 연결이 활성화되어있는 상태에서 mysql이 실행중인 경우 (권장되지 않습니다) 클라이언트와 서버 사이에 문자 세트의 동기가 유지됩니다. 이것은 지정된 캐릭터 세트가 다시 연결하는 데 사용되기 때문입니다.clear
,\c
현재 입력을 취소합니다. 이것은 입력하는 명령문의 실행을 취소 한 경우에 사용합니다.
connect [
,db_name host_name
]]\r [
db_name host_name
]]서버에 다시 연결합니다. 옵션 데이터베이스 이름 및 호스트 이름 인수를 지정하여 기본 데이터베이스 또는 서버가 실행중인 호스트를 지정할 수도 있습니다. 생략하면 현재 값이 사용됩니다.
delimiter
,str
\d
str
mysql이 SQL 문 사이의 구분 기호로 해석하는 문자열을 변경합니다. 기본값은 세미콜론 ( "
;
") 문자입니다.구분 기호 문자열은
delimiter
명령 행에서 따옴표가 또는없이 인수로 지정할 수 있습니다. 작은 따옴표 ('
), 큰 따옴표 ("
) 또는 역 따옴표 (`
) 문자로 묶을 수 있습니다. 따옴표로 둘러싸인 문자열에 따옴표를 포함 시키려면 다른 따옴표로 문자열을 묶거나 또는 백 슬래시 ( "\
") 문자로 따옴표를 이스케이프 처리합니다. 백 슬래시는 MySQL의 이스케이프 문자이기 때문에 따옴표로 둘러싸인 문자열 외부에서 사용하지 않도록하십시오. 인용되지 않은 인수는 구분 문자는 첫 번째 공백이나 줄의 끝까지 읽습니다. 인용 된 인수의 경우, 분리 문자는 해당 행의 해당 따옴표까지 읽습니다.mysql은 구분 문자열의 인스턴스가 어디에서 발견 된도 (따옴표로 둘러싸인 문자열에서 제외) 명령문 구분 기호로 해석합니다. 다른 단어에 출현 할 가능성이있는 구분자를 정의하지 않도록주의하십시오. 예를 들어, 단락 문자를
X
로 정의하면 문INDEX
라는 단어를 사용할 수 없습니다. mysql은이를INDE
구분 문자X
가 지속될 것으로 해석합니다.mysql 의해 인식되는 분리 문자가 기본 "
;
"이외의 뭔가에 설정되어있는 경우, 그 캐릭터의 인스턴스는 해석되지 않고 서버로 전송됩니다. 그러나 서버 자체는 이어 ";
"을 문 구분 기호로 해석하고 그 해석에 따라 문을 처리합니다. 서버 측에서이 동작은 여러 문 실행 ( 섹션 23.8.17 "여러 문 실행의 C API 지원" 을 참조하십시오)와 저장 프로 시저 및 함수의 본체, 트리거 및 이벤트 분석 ( 섹션 20.1 "저장 프로그램의 정의" 를 참조하십시오)에 효과가 있습니다.edit
,\e
현재의 입력 문을 편집합니다. mysql에서는
EDITOR
와VISUAL
환경 변수의 값을 확인하여 어떤 편집기를 사용할지 여부를 결정합니다. 두 변수도 설정되어 있지 않은 경우 기본 편집기는 vi입니다.edit
명령은 Unix에서만 작동합니다.ego
,\G
현재 문을 실행하는 서버에 보내고 결과를 세로 형식으로 표시합니다.
exit
,\q
mysql을 종료합니다.
go
,\g
현재 문을 실행하는 서버에 보냅니다.
nopager
,\n
출력의 페이징을 비활성화합니다.
pager
의 설명을 참조하십시오.nopager
명령은 Unix에서만 작동합니다.notee
,\t
tee 파일에 출력 사본을 해제합니다.
tee
설명을 참조하십시오.nowarning
,\w
각 문 뒤의 경고 표시를 해제합니다.
pager [
,command
]\P [
command
]출력의 페이징을 사용합니다. mysql을 호출 할 때
--pager
옵션을 사용하여 less, more, 또는 기타 유사한 프로그램 등의 Unix 프로그램을 사용하여 대화 형 모드에서 쿼리 결과를 참조하거나 검색 할 수 있습니다. 옵션 값을 특정하지 않는 경우, mysql은PAGER
환경 변수의 값을 확인하고 페이저 값으로 설정합니다. 페이저 기능은 인터랙티브 모드에서만 작동합니다.결과 페이징은
pager
명령 대화식으로 활성화하고nopager
에서 비활성화 할 수 있습니다. 이 명령은 선택적 인수를 취합니다. 지정된 경우 페이징 프로그램은 그것을 설정됩니다. 인수가없는 경우 페이저는 명령 행에서 설정된 것 또는 호출기가 지정되어 있지 않은 경우는stdout
됩니다.결과 페이징은 Unix에서만 작동합니다. 이것은 Windows에는없는
popen()
함수를 사용하기 때문입니다. Windows에서 쿼리 출력의 저장에tee
옵션을 대신 사용할 수 있지만, 이것은 경우에 따라서는 출력 브라우징도pager
만큼 편리하지는 않습니다.print
,\p
현재의 입력 문을 실행하지 않고 출력합니다.
prompt [
,str
]\R [
str
]mysql 프롬프트를 지정 문자열로 재구성합니다. 프롬프트에서 사용할 수있는 특수 문자 시퀀스 내용은이 섹션의 나머지 부분에서 설명합니다.
인수없이
prompt
명령을 지정하면 mysql 프롬프트를 기본mysql>
으로 재설정합니다.quit
,\q
mysql을 종료합니다.
rehash
,\#
문의 입력 중에 데이터베이스, 테이블 및 컬럼 이름 보완을 가능하게하는 보완 해시를 재 구축합니다. (
--auto-rehash
옵션의 설명을 참조하십시오.)source
,file_name
\.
file_name
지정된 파일을 읽고 그 안에 포함되어있는 명령문을 실행합니다. Windows에서는 경로 이름 구분자를
/
또는\\
에 지정할 수 있습니다.status
,\s
사용중인 연결과 서버에 대한 상태 정보를 표시합니다.
--safe-updates
모드에서 실행중인 경우status
는 쿼리에 영향을주는 mysql 변수 값도 출력합니다.system
,command
\!
command
기본 명령 인터프리터를 사용하여 지정된 명령을 실행합니다.
system
명령은 Unix에서만 작동합니다.tee [
,file_name
]\T [
file_name
]mysql의 호출시에
--tee
옵션을 사용하여 문과 그 결과를 기록 할 수 있습니다. 화면에 표시되는 모든 데이터는 지정된 파일에 추가됩니다. 이것은 디버깅시에도 매우 편리합니다. mysql에서는 각 문이 끝나고 다음 메시지가 표시되기 직전에 결과를 파일에 플래시합니다. tee 기능은 대화 형 모드에서만 작동합니다.tee
명령을 사용하면이 기능을 대화식으로 사용할 수 있습니다. 매개 변수가 없으면 이전의 파일이 사용됩니다.tee
파일을 해제하려면notee
명령을 사용합니다.tee
를 실행하면 로깅이 다시 활성화됩니다.use
,db_name
\u
db_name
db_name
을 기본 데이터베이스로 사용합니다.warnings
,\W
각 문 뒤의 경고 표시를 활성화합니다 (존재하는 경우).
pager
명령의 도움말을 다음 적습니다.
이것을 사용하여 파일에 기록하면 결과는 파일에만 보내집니다.
mysql>
pager cat > /tmp/log.txt
페이저로 사용하는 프로그램의 옵션을 전달할 수 있습니다.
mysql>
pager less -n -i -S
이전 예제의
-S
옵션에주의하십시오. 넓은 쿼리 결과의 검색시 매우 편리합니다. 매우 넓은 결과 세트는 화면에서 읽기가 어려울 수 있습니다. less에 대한-S
옵션을 지정하면 왼쪽과 오른쪽 화살표 키를 사용하여 가로로 스크롤 할 수 있기 때문에 결과 세트를 쉽게 읽을 수 있습니다. 또한-S
를 less에서 대화식으로 사용하여 수평 탐색 모드를 ON / OFF 할 수 있습니다. 자세한 내용은 less 매뉴얼 페이지를 참조하십시오.shell>
man less
-F
및-X
옵션을 less로 사용하면 출력이 한 화면에 들어가는 경우 프로그램을 종료시킬 수 있으며, 이는 스크롤 할 필요가 때 편리합니다.mysql>
pager less -n -i -S -F -X
쿼리 출력의 취급에 관한 매우 복잡한 페이저 명령을 지정할 수 있습니다.
mysql>
pager cat | tee /dr1/tmp/res.txt \
| tee /dr2/tmp/res2.txt | less -n -i -S
이 예에서는 명령은 쿼리의 결과를
/dr1
과/dr2
에 마운트 된 두 개의 서로 다른 파일 시스템의 두 개의 다른 디렉토리에있는 2 개의 파일로 전송하고, less를 사용하여 결과를 화면에 표시 합니다.
tee
함수와 pager
함수를 조합하여 사용할 수 있습니다. tee
파일을 활성화하고 pager
를 less에 설정하고 있으면, less 프로그램을 사용하여 결과를 검색 할 수 있고 동시에 모든 것을 파일에 추가 할 수 있습니다. pager
명령과 함께 사용하는 유닉스 tee
와 mysql에 내장 tee
명령의 차이점은 내장 tee
는 Unix tee없이 작동한다는 것입니다. 또한 내장 tee
은 화면에 출력되는 모든 것을 기록하고 있지만, pager
와 함께 사용되는 Unix tee은 거기까지 기록하지 않습니다. 또한, tee
파일 로깅은 mysql 내에서 대화식으로 ON / OFF 할 수 있습니다. 이것은 어떤 쿼리만을 파일에 로그 할 때 유용합니다.
prompt
명령은 기본 mysql>
프롬프트를 다시 구성합니다. 프롬프트를 정의하는 문자열에 다음의 특수한 시퀀스를 포함 할 수 있습니다.
옵션 | 설명 |
---|---|
\c | 문을 발행 할 때마다 증가하는 카운터 |
\D | 현재 날짜 (풀에서) |
\d | 기본 데이터베이스 |
\h | 서버 호스트 |
\l | 현재의 단락 문자 |
\m | 현재 시간 분 |
\n | 개행 문자 |
\O | 3 문자 형식의 현재의 달 (Jan, Feb, ...) |
\o | 숫자 형식의 현재의 달 |
\P | am / pm |
\p | 현재의 TCP / IP 포트 또는 소켓 파일 |
\R | 현재 시간, 24 시간 표기 (0-23) |
\r | 현재 시간, 12 시간 표기 (1-12) |
\S | 세미콜론 |
\s | 현재 시간 초 |
\t | 탭 문자 |
\U | 전체 |
\u | 사용자 이름 |
\v | 서버 버전 |
\w | 3 문자 형식의 현재 요일 (Mon, Tue, ...) |
\Y | 현재 연도 (4 자리) |
\y | 현재 년 (2 자리) |
\_ | 공간 |
\ | 공간 (백 슬래쉬 뒤에 공간이 마련되어 있습니다) |
\' | 작은 따옴표 |
\" | 큰 따옴표 |
\\ | 리터럴 " \ "백 슬래시 문자 |
\ | |
프롬프트는 여러 가지 방법으로 설정할 수 있습니다.
환경 변수를 사용합니다.
MYSQL_PS1
환경 변수를 프롬프트 문자열로 설정할 수 있습니다. 예 :shell>
export MYSQL_PS1="(\u@\h) [\d]> "
명령 줄 옵션을 사용합니다. 명령 행에서
--prompt
옵션을 mysql로 설정할 수 있습니다. 예 :shell>
mysql --prompt="(\u@\h) [\d]> "
(user @ host) [database>옵션 파일을 사용합니다.
prompt
옵션을 홈 디렉토리/etc/my.cnf
또는.my.cnf
파일 등 모든 MySQL 옵션 파일의[mysql]
그룹에 설정할 수 있습니다. 예 :[mysql] prompt = (\\ u @ \\ h) [\\ d> \\ _
이 예에서는 백 슬래시가 2 개있는 것에주의하십시오. 옵션 파일에서
prompt
옵션을 사용하여 프롬프트를 설정하면 특별한 프롬프트 옵션을 사용하면 백 슬래시를 2 개 사용하는 것이 좋습니다. 허용 된 프롬프트 옵션 세트와 옵션 파일에서 인식되는 특수 이스케이프 시퀀스의 집합은 중복이 있습니다. (옵션 파일에서 이스케이프 시퀀스에 관한 규칙은 섹션 4.2.6 "옵션 파일 사용" 에 나열되어 있습니다.) 단일 백 슬래시를 사용하는 경우,이 중복이 문제가 될 수 있습니다. 예를 들어,\s
는 현재 초 값이 아닌 공백으로 해석됩니다. 다음의 예는 현재 시간을HH:MM:SS>
형식으로 포함하도록 옵션 파일에서 프롬프트를 정의하는 방법을 보여줍니다.[mysql] prompt = "\\ r \\ m : \\ s>"
프롬프트를 대화식으로 설정합니다.
prompt
명령 (또는\R
명령)을 사용하면 프롬프트를 대화식으로 변경할 수 있습니다. 예 :mysql>
prompt (\u@\h) [\d]>\_
PROMPT set to '(\ u @ \ h) [\ d]> \ _' (user
@host
) [database
> (user
@host
) [database
> prompt Returning to default PROMPT of mysql> mysql>