MariaDB

MariaDB의 mysqlshow 명령어

자바바라 2025. 1. 20. 21:42

MariaDB의 mysqlshow 명령어는 데이터베이스, 테이블, 컬럼에 대한 정보를 보여주는 유틸리티다. MySQL에도 동일한 이름의 명령어가 존재하며, MariaDB와 MySQL 모두에서 거의 동일하게 작동한다. mysqlshow는 데이터베이스 스키마 정보를 간략하게 확인하는 데 유용하며, SQL 쿼리를 직접 실행하지 않고도 데이터베이스 구조를 파악하는 데 도움이 된다.

기본 사용법:

      mysqlshow [옵션] [데이터베이스명 [테이블명 [컬럼명]]]
    

 

옵션:

  • -u, --user=사용자: 데이터베이스에 접속할 사용자 계정을 지정한다.
  • -p, --password[=비밀번호]: 사용자 계정의 비밀번호를 지정합니다. 비밀번호를 지정하지 않으면 프롬프트에서 입력해야 한다.
  • -h, --host=호스트명: 데이터베이스 서버의 호스트 이름을 지정합니다. 기본값은 localhost
  • -P, --port=포트번호: 데이터베이스 서버의 포트 번호를 지정합니다. 기본값은 3306.
  • -v, --verbose: 자세한 정보를 출력한다.
  • -s, --silent: 에러 메시지를 제외한 출력을 최소화한다.
  • -V, --version: mysqlshow 버전 정보를 출력한다.
  • -C, --compress: 클라이언트와 서버 간의 통신을 압축한다.
  • --count: 테이블의 행 수를 출력한다.
  • --no-defaults: 기본 옵션을 사용하지 않고 명시적으로 설정된 옵션만 사용한다.
  • --help: 도움말을 출력한다.

사용 예시:

  1. 모든 데이터베이스 목록 보기:이 명령어는 root 사용자로 접속하여 모든 데이터베이스의 이름을 출력한다.
    mysqlshow -u root -p
  2. 특정 데이터베이스의 테이블 목록 보기: mydatabase라는 데이터베이스의 모든 테이블 이름을 출력합니다.
    mysqlshow -u root -p mydatabase
  3. 특정 테이블의 컬럼 정보 보기: mydatabase 데이터베이스의 mytable 테이블의 모든 컬럼 정보 (이름, 데이터 유형, NULL 허용 여부, 키 정보 등)를 출력한다.
    mysqlshow -u root -p mydatabase mytable
  4. 특정 컬럼 정보 보기: mydatabase 데이터베이스의 mytable 테이블의 mycolumn 컬럼의 세부 정보를 출력합니다.
    mysqlshow -u root -p mydatabase mytable mycolumn
  5. 테이블의 행 수 출력: mydatabase 데이터베이스의 mytable 테이블의 행 수를 출력합니다.
          mysqlshow -u root -p --count mydatabase mytable

 

출력 정보:

mysqlshow는 다양한 수준에서 정보를 제공한다.

  • 데이터베이스: 데이터베이스 이름 목록을 출력한다.
  • 테이블: 테이블 이름 목록 또는 테이블의 컬럼 정보(이름, 유형, NULL 여부, 키 정보 등)를 출력한다.
  • 컬럼: 컬럼의 자세한 정보를 출력한다.

주의 사항:

  • mysqlshow는 데이터베이스에 직접 접근하여 정보를 가져오므로, 데이터베이스 서버에 접속할 수 있는 적절한 권한을 가진 사용자로 실행해야 한다.
  • 비밀번호를 직접 명령줄에 입력하는 것은 보안상 좋지 않습니다. 가능한 한 -p 옵션만 사용하고 비밀번호 입력 프롬프트에서 입력하거나, .my.cnf 파일을 사용하여 인증 정보를 관리하는 것이 좋다.
  • mysqlshow의 출력은 기본적으로 간결하게 제공되므로, 더 자세한 정보를 확인하려면 SQL 쿼리(예: SHOW DATABASES;, SHOW TABLES;, DESCRIBE 테이블명;)를 사용하는 것이 좋다.
  • mysqlshow의 결과는 터미널에 출력되므로, 필요한 경우 결과를 파일로 리다이렉트하여 저장할 수 있다 (예: mysqlshow ... > output.txt).

mysqlshow 명령어는 데이터베이스 구조를 빠르게 파악하고 간략한 정보를 얻는 데 유용하다. 하지만 더 상세한 정보나 복잡한 쿼리 결과는 SQL 쿼리를 통해 확인하는 것이 좋다.

 

 

#!/bin/bash

MYSQL_USER="your_username"
MYSQL_PASS="your_password"

mysql -u "$MYSQL_USER" -p"$MYSQL_PASS" -e "SHOW DATABASES" | grep -v ^Database | while read db; do
    echo "--- Database: $db ---"
    mysql -u "$MYSQL_USER" -p"$MYSQL_PASS" -D "$db" -e "SHOW TABLES" | grep -v ^Tables_in | while read table; do
        echo "   Table: $table"
        mysql -u "$MYSQL_USER" -p"$MYSQL_PASS" -D "$db" -e "SELECT COUNT(*) FROM \`$table\`;"
        echo "--------------------"
    done
done