MySQL에서 데이터베이스 목록을 조회하는 방법을 알고 싶다면 SHOW DATABASES 명령어를 사용하면 돼요. 이 명령어를 실행하면 현재 서버에 존재하는 모든 데이터베이스 목록을 확인할 수 있어요.
하지만 일부 경우에는 권한 문제로 인해 원하는 데이터베이스가 보이지 않을 수도 있어요. 이 글에서는 SHOW DATABASES 명령어의 사용법과 함께 권한 문제 해결 방법, 특정 조건에 맞는 데이터베이스만 조회하는 방법 등을 자세히 알아볼게요! 🚀
SHOW DATABASES 명령어란?
MySQL에서 데이터베이스를 확인하는 가장 기본적인 방법은 SHOW DATABASES 명령어를 사용하는 거예요. 이 명령어를 실행하면 현재 MySQL 서버에 존재하는 데이터베이스 목록을 출력해 줍니다.
예를 들어, 아래와 같이 입력하면 MySQL에 있는 모든 데이터베이스 목록을 볼 수 있어요.
SHOW DATABASES;
SHOW DATABASES 사용법
MySQL에 접속한 후 SHOW DATABASES 명령어를 실행하면 아래와 같은 결과를 얻을 수 있어요.
mysql> SHOW DATABASES;
🔍 실행 결과:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| my_database |
+--------------------+
조회 권한이 없을 경우 해결 방법
데이터베이스 목록이 보이지 않는다면, 계정에 필요한 권한이 없을 가능성이 있어요. SHOW DATABASES 명령어를 사용하려면 MySQL 계정에 적절한 권한이 있어야 해요.
만약 권한이 부족하다면, root 계정으로 로그인한 후 아래 명령어를 실행해서 특정 사용자에게 권한을 부여할 수 있어요.
GRANT SHOW DATABASES ON *.* TO '사용자명'@'localhost';
특정 패턴의 데이터베이스 목록 조회
만약 특정 문자열이 포함된 데이터베이스만 조회하고 싶다면, LIKE 연산자를 사용할 수도 있어요.
SHOW DATABASES LIKE 'my_%';
INFORMATION_SCHEMA를 활용한 조회
또 다른 방법으로 INFORMATION_SCHEMA.SCHEMATA 테이블을 조회하면 데이터베이스 목록을 확인할 수 있어요.
SELECT schema_name FROM information_schema.schemata;
FAQ
Q1. MySQL에서 현재 사용 중인 데이터베이스를 확인하는 방법은?
A1. `SELECT DATABASE();` 명령어를 실행하면 현재 접속 중인 데이터베이스를 확인할 수 있어요.
Q2. SHOW DATABASES 명령어가 실행되지 않아요. 왜 그런가요?
A2. 계정에 권한이 없을 가능성이 높아요. root 계정으로 접속하거나 `GRANT` 명령어로 권한을 부여해야 해요.
Q3. 특정 패턴에 맞는 데이터베이스만 조회할 수 있나요?
A3. `SHOW DATABASES LIKE '패턴';` 명령어를 사용하면 특정 조건에 맞는 데이터베이스만 조회할 수 있어요.
Q4. MySQL에서 기본 제공되는 데이터베이스는 어떤 것들이 있나요?
A4. MySQL은 기본적으로 `mysql`, `information_schema`, `performance_schema`, `sys` 데이터베이스를 제공해요.
Q5. MySQL에서 새로운 데이터베이스를 생성하는 방법은?
A5. `CREATE DATABASE 데이터베이스명;` 명령어를 사용하면 새로운 데이터베이스를 생성할 수 있어요.
Q6. 특정 데이터베이스에 접근하는 방법은?
A6. `USE 데이터베이스명;` 명령어를 실행하면 해당 데이터베이스를 사용할 수 있어요.
Q7. MySQL에서 데이터베이스를 삭제하는 방법은?
A7. `DROP DATABASE 데이터베이스명;` 명령어를 실행하면 해당 데이터베이스가 삭제돼요. 주의해서 사용해야 해요!
Q8. MySQL에서 SHOW DATABASES를 실행했을 때 원하는 데이터베이스가 보이지 않는 이유는?
A8. 계정에 `SHOW DATABASES` 권한이 없거나, `SELECT` 권한이 부여되지 않은 데이터베이스일 가능성이 있어요.