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_server의 latin1과 collation_server의 latin1_swedish_ci를
각각 utf8mb4와 utf8mb4_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에서도 정상작동했습니다.
Toad 테이블 복사 (0) | 2020.09.11 |
---|