MariaDB 10.5에서 한글을 제대로 처리하려면 문자 집합(character set)과 정렬 1칙(collation)을 한글에 맞게 설정해야 합니다. 보통은 UTF-8을 사용하면 한글이 제대로 처리됩니다.
> 한글 입력을 위한 설정 방법
:: my.cnf (또는 mariadb-server.cnf ) 파일 수정/etc/my.cnf.d/mariadb-server.cnf
my.cnf 또는 mariadb-server.cnf 파일에서 기본 문자 집합과 정렬 규칙을 UTF-8로 설정합니다.
mariadb-server.cnf 파일을 열고, 아래와 같은 설정을 추가하거나 수정합니다.[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
utf8mb4는 UTF-8의 확장판으로, 한글을 포함한 모든 유니코드 문자를 지원. utf8mb4_unicode_ci는 대소문자를 구분하지 않고, 유니코드 기준으로 정렬하는 규칙.
MariaDB에서는 각 데이터베이스와 테이블에 대해 문자 집합과 정렬 규칙을 설정할 수 있음.
> 데이터베이스 생성 시 설정:CREATE DATABASE mydatabase
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
> 기존 데이터베이스에 설정 적용:
이미 생성된 데이터베이스에 대해 문자 집합과 정렬 규칙을 변경하려면 다음 SQL 명령어를 사용합니다.ALTER DATABASE mydatabase
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci;
> 테이블의 문자 집합 및 정렬 규칙 변경:ALTER TABLE mytable
CONVERT TO CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
> 클라이언트 문자 집합 설정
MariaDB에 연결할 때, 클라이언트 측에서 사용할 문자 집합도 설정할 수 있습니다. 이를 위해 연결 후 다음 SQL 명령어를 실행.
SET NAMES utf8mb4;
이 명령은 현재 세션에 대해 문자 집합을 utf8mb4로 설정합니다.
> 테스트
설정이 완료되면, 한글을 입력하고 제대로 저장되는지 확인합니다.INSERT INTO mytable (column_name) VALUES ('한글 테스트');
SELECT * FROM mytable;
> 서버 재시작
설정을 변경한 후에는 MariaDB 서버를 재시작해야 적용됩니다.systemctl restart mariadb
