정리/DataBase

이모지 (😊😂🤣❤)를 사용하기 위해 DataBase설정 변경하기

알렉스 페레이라 2023. 6. 19. 10:15

특수문자(#, ★, ●, ◆, |)만 입력되면 문제없었던 시절이 끝난것 같다.

 

포탈구축시에 많은 기업에서 요구사항중에 꼭 있는것이 이모지가 정상적으로 입력되게 해달라는 것인데, 의외로 해결은 간단하면서도 복잡하다.

 

일단 내가 직접 해결해본 DB만 기록해두려 한다.

 

1.MariaDB

character set을 utf-8로 설정해 주어야한다.

하지만 기본 utf-8은 3byte로 설계가 되어있기때문에 utf-8 mb4라는 4byte기반으로 설계된 character set으로 설정한다.

 

설정방법

1. my.cnf 설정파일을 수정한다.

Mysql/MariaDB는 /etc/my.cnf 라는 파일로 데이터베이스 설정을 관리한다. 아래와 같이 수정/삽입 해주자.

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
skip-character-set-client-handshake       // Client의 인코딩 설정 무시 & Server의 인코딩을 따릅니다.


[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

2.  mysql 또는 mariadb 를 재시작하자.

 

3. 정상적으로 수정되었는지 확인한다.

 

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'

성공

2. Tibero

character set을 utf-8로 설정해 주어야한다.

MariaDB는 4byte character set인  utf-8 mb4로 설정을 했는데, tibero는 구글링 결과 utf8로만 설정하면 된다고 한다.

※Tmax사에 문의 후 추후 업데이트 예정

 

Tibero는 character set을 변경하기 위해서는 DB를 재설치 해야한다.. 오마이갓..

 

1. Tibero를 제거한다. (현재 프로젝트에서는 DBA가 따로 존재하기때문에 요청할 예정이다.)

 

2. Tibero를 설치하며 다음과 같이 character set을 설정한다.

create database "tibero"
user sys identified by tibero
maxinstances 8
maxdatafiles 100
character set UTF8
logfile group 1 'log001.log'
size 100M,
group 2 'log002.log'
size 100M,
group 3 'log003.log'
size 100M
maxloggroups 255
maxlogmembers 8
noarchivelog
datafile 'system001.dtf'
size 100M
autoextend on next 100M
maxsize unlimited
default temporary tablespace TEMP
tempfile 'temp001.dtf'
size 100M
autoextend on next 100M
maxsize unlimited
extent management local autoallocate
undo tablespace UNDO
datafile 'undo001.dtf'
size 100M
autoextend on next 100M
maxsize unlimited
extent management local autoallocate;

 

3. 정상적으로 설치되었는지 확인한다.

성공!

3. Oracle

tibero 쿼리가 오라클과 대동소이해서, Oracle도 Tibero처럼 DB를 재설치 해야하나 싶었는데, 구글링을 해보니 정확한 방법이 나와있지않다. 정확히 정리해서 추가할 예정