본문 바로가기

MySQL/MySQL Admin

Mysql prompt 변경하기!

이번에는 mysql prompt를 바꿔보도록 하겠습니다 ㅎ

별로 신경을 안 썼었는데 테스트하려고 보니 시간출력하기가 참 애매해서 이렇게 올리네요 ㅎ

oracle이나 mariadb같은경우 어떤 database를 쓰고 있는지 어떤 유저인지를 출력하게끔 하는 게 있는데요. mysql도 있습니다. 선언하는 방법에는 여러 가지가 있습니다.

 

방법 1 : MYSQL_PS1 환경변수를 shell에서 선언을 해줍니다.

shell> export MYSQL_PS1="(\u@\h) [\d]> "

 

방법 2 : Mysql에 접속할 때 --prompt 선언을 해줍니다.

shell> mysql --prompt="(\u@\h) [\d]> "

 

방법 3 : 저는 config/etc/my.cnf에 있습니다. 이럴 경우 [mysql] 그룹에 prompt 옵션을 추가해 줍니다. 대신 여기서는 backslash를 두 번 써 주어야 합니다. 쉘에서 다르게 작용이 될 수 있기 때문인데요. DB\값으로 들어가기 위해서는 두 번을 써야 shell쪽에 반영되지 않고 DB에 그대로 반영이 됩니다.

[mysql]

prompt=”(\\u@\\h) [\\d]>\\_”

 

방법 4 : mysql에 접속해서 바꾸는 방법이 있습니다.

mysql> \R [\u@\h] [\d] >

PROMPT set to '[\u@\h] [\d] >'

[root@localhost] [chunge] >prompt (\u@\h)(\d) >

PROMPT set to '(\u@\h)(\d) >'

(root@localhost)(chunge) > prompt

Returning to default PROMPT of mysql>

mysql>

 

총 네 가지 방법에 대해서 설명을 했습니다. 아래는 옵션에 대한 설명입니다.

Option

Description

\C

현재 접속한 ID (MySQL 5.7.6 버전 이상)

\c

사용자가 입력한 구문의 수. enter를 입력해도 카운트가 올라감.

\D

전체 날짜로 출력. example) Fri Dec  4 11:39:10 2015

\d

접속한 데이터베이스 명 (미설정 시 none)

\h

서버 호스트 이름

\l

현재 구문 끝맺음말(delimiter)

\m

현재 시간의 분

\n

새로운 줄 생성 구분자

\O

현재 월을 세자리 문자로 나타냄 example) Jan, Feb, …

\o

현재 월의 숫자 포맷

\P

am/pm으로 나타냄

\p

현재 TCP/IP 포트 또는 socket file

\R

현재 시간을 24시간으로 나타냄 (0–23)

\r

현재 시간을 12시간으로 나타냄 (1–12)

\S

세미콜론(;)

\s

현재 시간의 초

\t

tab 문자

\U

현재 user@host 전체 문자

\u

현재 유저 이름

\v

서버 버전

\w

현재 요일을 나타냄 example) Mon, Tue, …

\Y

현재 연도를 4자리로 나타냄

\y

현재 연도를 2자리로 나타냄

\_

한 칸 띄우기

\

그냥 빈 공간으로 놔두기

\'

홑 따옴표

\"

쌍 따옴표

\\

“\” 문자를 나타냄

\x

x를 나타냄

 

이렇게 원하는 입맛에 따라서 설정이 가능한데요. 연월일 중에 일.. day를 나타내는 것이 따로 없어서 그게 좀 아쉽네요..

 

참조 : http://dev.mysql.com/doc/refman/5.7/en/mysql-commands.html