1. 서론
Ubuntu Apache2 환경에서 한글 데이터베이스를 다루어보려고 했는데 아래와 같은 에러가 발생했다.
Incorrect string value: '\xEC\x9E\x90\xEA\xB9\x8C' for column 'Name' at row 1
구글링 결과, /etc/mysql/mysql.conf.d/ 아래에 각 파일별로 캐릭터셋 설정을 해야 함을 알았다.
$ cd /etc/mysql/mysql.conf.d
위 경로로 들어간 후, 파일별로 캐릭터셋 설정을 할 것이다.
2. 캐릭터셋 설정
1) mysqld.cnf
$ sudo vim mysqld.cnf
character-set-client-handshake=FALSE # 생략 가능
character-set-server=utf8
collation-server=utf8_general_ci
init_connect=SET collation_connection=utf8_general_ci
init_connect=SET NAMES utf8
2) client.cnf
$ sudo vim client.cnf
[client]
default-character-set=utf8
3) mysqldump.cnf
$ sudo vim mysqldump.cnf
[mysqldump]
default-character-set=utf8
4) mysql.cnf
$ sudo vim mysql.cnf
[mysql]
default-character-set=utf8
전체 과정은 아래와 같다.
3. 결과
$ sudo /etc/init.d/mysql restart
mysql을 재시작하면 결과가 반영된다.
SHOW VARIABLES LIKE 'char%';
SHOW VARIABLES LIKE 'collation%';
위 코드로 캐릭터셋을 확인할 수 있어서, 새로 콘솔을 만든 후에 확인해보았다.
전부 잘 변경된 것을 확인할 수 있다.
4. Tip
이미 생성된 테이블은 생성 당시의 캐릭터셋으로 만들어져 있기 때문에 추가적으로 테이블의 캐릭터셋을 변경해한다.
1.생성된 테이블의 정보 확인. (테이블 정보 제일 밑에 DEFAULT CHARSET이 표시됨)
SHOW CREATE TABLE table_name;
2.utf-8로 테이블의 캐릭터셋 변경.
ALTER TABLE table_name CONVERT TO character SET utf8;
3.1번 명령어로 변경되었는지 확인.
데이터베이스의 양이 많다면 모두 수정하는 것보다도 새로 받아오는 것이 편할 수도 있다.
(짜놓은 쿼리가 있다는 가정 하)
hongsii.github.io/2017/10/15/mysql-%ED%95%9C%EA%B8%80-%EA%B9%A8%EC%A7%90-%EB%AC%B8%EC%A0%9C/
'💬 Trouble Shooting > Database' 카테고리의 다른 글
Mysql no database selected 에러 해결 (0) | 2021.04.05 |
---|---|
Mysql The server quit without updating PID file 에러 해결방법_mac 맥북 (0) | 2021.01.21 |