2023 주니어 SRE 엔지니어 후레임

반응형

COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'latin1'

Toad에서 새로 생성한 테이블에 SELECT를 요청하자

 

COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'latin1'

 

라는 메시지와 함께 쿼리가 실행되지 않습니다.

 

 

원인

원인은 MySQL 자체의 캐릭터셋(character_set)과 collation이 latin1로 설정되어있기 때문입니다.

 

MySQL 상에서 아래와 같이 입력하면 현재 설정을 알 수 있습니다.

mysql> SHOW VARIABLES LIKE '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

mysql> SHOW VARIABLES LIKE '%collation%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+

character_set_serverlatin1collation_serverlatin1_swedish_ci

각각 utf8mb4utf8mb4_general_ci로 바꾸어주어야 합니다.

 

해결방법

MySQL 환경설정 파일인 my.cnf의 경로를 찾아 수정 후 MySQL 데몬을 재시작해주면 됩니다.

 

1. my.cnf 수정 (기본 경로는 /etc/my.cnf)

character-set-server = utf8mb4

collation-server = utf8mb4_general_ci

 

두 줄을 [mysqld] 아래에 추가해줍니다.

 

 

2. mysql 데몬 재시작

service mysql restart

위와 같이 입력하면 mysql 서비스가 재시작됩니다.

 

 

3. mysql 로그인 후 확인

변경값이 정상적으로 적용된 것을 확인할 수 있습니다.

 

이후, Toad에서도 정상작동했습니다.

반응형

'IT > DB' 카테고리의 다른 글

Toad 테이블 복사  (0) 2020.09.11

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band