Mysql 이모티콘 입력 가능 설정

2021. 4. 27. 16:20Programming

일반적인 mysql 기본세팅일 경우 이모티콘을 텍스트로 저장할 경우 물음표로 저장이 된다.

이는 유니코드 U+10000 이상인 문자들을 UTF-8로 인코딩하려면 4바이트가 필요하기 때문이다. 

그래서 utf8mb4로 인코딩을일반적인 mysql 기본세팅일 경우 이모티콘을 텍스트로 저장할 경우 물음표로 저장이 된다.

 

이는 유니코드 U+10000 이상인 문자들을 UTF-8로 인코딩하려면 4바이트가 필요하기 때문이다. 

 

그래서 utf8mb4로 인코딩을 값을 적용해야 한다.

1. my.cnf(리눅스)나 my.ini(윈도우즈)설정 파일을 다음과 같이 수정한다.

----------------------------------------------------------

[client]

default-character-set = utf8mb4

 

[mysql]

default-character-set = uft8mb4

 

[mysqldump]

default-character-set = uft8mb4

 

[mysqld]

skip-character-set-client-handshake

#init_connect="SET collation_connection = utf8mb4_unicode_ci"

#init_connect="SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci"

 

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

----------------------------------------------------------

2. Mysql 재부팅으로 설정값 적용시킨다.

3. 콘솔에서 확인 설정 값 확인

   > mysql -u root -p

   mysql 패스워드 입력

   확인] show variables like 'c%';

 

4. MYsql 워크 패치에서 각 데이터베이스, 테이블, 컬럼 설정

 

    ALTER DATABASE

      [데이터베이스]

      CHARACTER SET = utf8mb4

      COLLATE = utf8mb4_unicode_ci;

 

    ALTER TABLE `[데이터베이스]`.`[테이블명]`

     CHARACTER SET = utf8mb4 , COLLATE = utf8mb4_unicode_ci ,

     CHANGE COLUMN `[컬럼명]` `[컬럼명]` VARCHAR(1300)

     CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci' NOT NULL ;

 

 5. 워크배치에서 이모티콘  입력하는 데이터베이스에 다음과 같은 설정 값 변경

    SET character_set_client = utf8mb4;

    SET character_set_connection = utf8mb4;

    SET character_set_results = utf8mb4;

 

    확인 ) SHOW VARIABLES WHERE Variable_name like 'c%';