개요
Toad for MySQL에서 10버전인 Maria DB 연결 설정 시, [Character set 'utf8mb3' is not supported by .Net Framework.] 이런 오류가 발생한다.
내가 접속 정보를 잘못 입력했나 확인해봤지만 접속 정보 문제가 아니라 charset(문자) 때문에 발생한 것으로 확인했다.
왜냐면 DBeaver에서는 정상적으로 접속이 되기 때문이다. DBeaver로 사용해도 되지만 왜 문제인지 궁금하다.
확인해보자.
원인
utf8mb3 관련 오류는 MySQL과 MariaDB의 문자 집합(charset) 변경으로 인해 발생할 수 있다고 한다.
이 오류는 MariaDB와 MySQL이 서로 호환되지 않는 문자 집합을 사용할 때 발생하며, 특히 utf8mb3와 utf8mb4의 차이에서 비롯된다.
정리 하자면 아래와 같다.
1. MariaDB와 MySQL의 문자 집합 차이
- MySQL 8.0부터는 utf8이 utf8mb4의 별칭이 되었다. 하지만 MariaDB에서는 utf8이 여전히 **utf8mb3**로 설정되어 있다.
- utf8mb3: 최대 3바이트로 유니코드 문자를 인코딩.
- utf8mb4: 최대 4바이트로 확장된 유니코드 문자(이모지 포함)를 지원.
2. Toad에서 MariaDB를 연결할 때의 호환성 문제
- TOAD가 MySQL의 최신 프로토콜이나 MariaDB의 고유 프로토콜을 올바르게 처리하지 못할 경우 MariaDB가 사용하는 기본 문자 집합을 인식하지 못할 수 있다.
해결방법
MariaDB 서버 설정 변경
[Linux] MariaDB의 설정 파일 (/etc/my.cnf 또는 /etc/mysql/my.cnf)에서 아래 내용을 추가하자.
[Windows] MariaDB의 설정 파일 (my.ini) 수정
DB 서버에서 기본 문자 집합을 utf8mb4로 변경하는 것이다.
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
--설정 저장 후 서버 재시작 필요
systemctl restart mariadb
2. Toad 연결 설정 명시적 변경
1번 같은 경우 DB 서버에 접속할 수 없는 상황이라면 조치가 불가능하다.
따라서 DB툴 자체에서 설정을 변경해주자.
- 연결 프로필에서 Host, Port, User, Password 등을 입력하고 추가 연결 옵션 또는 고급 설정 부분에 아래와 같이 입력한다.
jdbc:mysql://<host>:<port>/<database>?characterEncoding=utf8mb4
-- ex)
-- jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=utf8mb4
'Dev > DB' 카테고리의 다른 글
[DB] Oracle에서 다양한 방법으로 테이블 백업하기 (1) | 2024.11.21 |
---|---|
[DB] Oracle DB에 HTML 엔티티로 데이터 입력하기 (3) | 2024.11.20 |
[DB] ORA-12505 에러 원인 및 해결 방법 (3) | 2024.11.10 |
[DB] 오라클 DBA_TAB_PRIVS 테이블 계정 권한 조회하기 (0) | 2024.11.07 |
[ORACLE] Function과 Procedure의 효율적인 사용 방법 (4) | 2024.09.08 |