mysqlshow 클라이언트는 MySQL 서버에 어떤 데이터베이스가 존재하는지, 각 데이터베이스에는 어떤 테이블이 있는지, 그리고 특정 테이블의 컬럼(column)이나 인덱스 정보가 무엇인지 손쉽게 확인할 수 있도록 도와주는 명령줄 도구입니다. 내부적으로는 여러 SQL SHOW 문을 대신 실행해 주는 역할을 하므로, 별도의 SQL 문을 직접 작성하지 않아도 원하는 구조 정보를 빠르게 조회할 수 있습니다.
mysqlshow 실행 방법
mysqlshow 유틸리티는 아래와 같은 형식으로 호출합니다.
shell> mysqlshow [options] [db_name [tbl_name [col_name]]]
인자를 어떻게 지정하느냐에 따라 출력 결과가 달라집니다.
데이터베이스를 지정하지 않으면, 서버에 존재하는 모든 데이터베이스 이름 목록이 표시됩니다.
데이터베이스만 지정하고 테이블을 지정하지 않으면, 해당 데이터베이스의 일치하는 모든 테이블 목록이 표시됩니다.
테이블까지 지정하고 컬럼을 지정하지 않으면, 그 테이블의 일치하는 모든 컬럼과 컬럼 타입이 함께 표시됩니다.
출력 결과에는 현재 사용자가 일정 권한(privileges)을 가진 데이터베이스, 테이블, 컬럼만 표시됩니다. 즉, 접근 권한이 없는 객체는 목록에서 제외됩니다.
주요 옵션
mysqlshow는 다양한 옵션을 지원하며, 명령줄에서 직접 지정하거나 옵션 파일(option file)의 [mysqlshow] 그룹 또는 [client] 그룹에 설정해 사용할 수 있습니다.
--bind-address=ip_address
컴퓨터에 네트워크 인터페이스가 여러 개 있는 경우, 이 옵션으로 MySQL 서버에 접속할 때 사용할 인터페이스를 선택할 수 있습니다.
--character-sets-dir=dir_name
문자셋(character set)이 설치되어 있는 디렉터리 경로를 지정합니다.
--compress, -C
클라이언트와 서버 간에 주고받는 모든 정보를 가능한 경우 압축하여 전송합니다.
--count
각 테이블의 행(row) 수를 함께 표시합니다. MyISAM 이외의 스토리지 엔진을 사용하는 테이블에서는 행 수 계산이 느려질 수 있습니다.
--port=port_num, -P port_num
TCP/IP 연결에 사용할 포트 번호를 지정합니다.
--print-defaults
프로그램 이름과 옵션 파일로부터 읽어 들인 모든 옵션 값을 출력합니다.
--user=user_name, -u user_name
서버에 접속할 때 사용할 MySQL 계정의 사용자 이름을 지정합니다.
--verbose, -v
상세(verbose) 모드입니다. 프로그램이 수행하는 작업에 대한 더 많은 정보를 출력하며, 이 옵션을 여러 번 지정하면 출력되는 정보의 양이 단계적으로 늘어납니다.
--version, -V
프로그램의 버전 정보를 표시한 뒤 종료합니다.