서버에 존재하는 모든 MySQL 데이터베이스의 기본 문자 집합(default character set)을 한 번에 확인하고 싶다면, information_schema.SCHEMATA 테이블을 조회하는 것이 가장 간단하고 확실한 방법입니다.
기본 문자 집합 조회 쿼리
아래 쿼리를 실행하면 데이터베이스 이름과 함께 해당 데이터베이스의 기본 문자 집합을 확인할 수 있습니다.
mysql> SELECT SCHEMA_NAME 'Database', default_character_set_name 'charset' FROM information_schema.SCHEMATA;
실행 결과 예시
+--------------------+---------+ | Database | Charset | +--------------------+---------+ | information_schema | utf8 | | gaurav | latin1 | | menagerie | latin1 | | mysql | latin1 | | performance_schema | utf8 | | sample | latin1 | | test | latin1 | | tutorial | latin1 | +--------------------+---------+ 8 rows in set (0.00 sec)
결과 해석
위 결과에서 Database 열은 서버에 생성된 데이터베이스의 이름을, Charset 열은 각 데이터베이스에 설정된 기본 문자 집합을 나타냅니다. 예를 들어 gaurav, sample, tutorial 데이터베이스는 latin1 문자 집합을 사용하는 반면, 시스템 데이터베이스인 information_schema와 performance_schema는 utf8로 설정되어 있는 것을 볼 수 있습니다.
특정 데이터베이스만 확인하기
모든 데이터베이스가 아닌 특정 데이터베이스의 문자 집합만 확인하려면 WHERE 절을 추가하면 됩니다.
mysql> SELECT SCHEMA_NAME 'Database', default_character_set_name 'charset' FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = 'sample';
참고: 정렬 규칙(Collation)까지 함께 확인하기
문자 집합과 함께 기본 정렬 규칙(collation)도 확인하고 싶다면 default_collation_name 열을 추가로 조회하면 더욱 유용합니다.
mysql> SELECT SCHEMA_NAME 'Database', default_character_set_name 'charset', default_collation_name 'collation' FROM information_schema.SCHEMATA;
이 방법은 별도의 외부 도구 없이 SQL 쿼리만으로 서버 전체의 문자 집합 설정을 파악할 수 있어, 인코딩 문제를 진단하거나 데이터베이스 환경을 점검할 때 매우 유용하게 활용됩니다.