데이터베이스

데이터베이스 character encoding, Error Code: 1366. Incorrect string value:

늘근이 2014. 5. 22. 23:07

기본 우분투로 sudo apt-get install mysql-server mysql-client

로 mysql 을 설치하면, 기본 문자 세팅이 latin1으로 되어있을 가능성이 높다.

이를 local에서 실행하기위해 같은 구조를 백업받아 다시 튼다면, 테이블 세팅의 인코딩이 계속 latin1으로 되어있어서

실행되지 않는다.

 

따라서, mysql을 설치하면 처음 root설정을 해주고 , 계속해서 처음의 초기 서버 디폴트 설정을 utf8세팅으로 바꾸면 된다.

 

 

이러한식의 

 

07011:46:46insert into posting values(96,11,'한글','한글',now())Error Code: 1366. Incorrect string value: '\xED\x95\x9C\xEA\xB8\x80' for column 'pTitle' at row 10.000 sec

 

 

이러한 구조로 나온다면, 아무리 서버설정을 해도 테이블자체의 세팅이 latin1으로 벌써 만들어진 객체이기 때문에 mysql등의 워크벤치에서도 상당히 바꾸기 힘들다. 


결국 결론은 이거다. 테이블을 만들때 무조건 utf-8을 이용함을 명시해주자. mysql을 그점을 놓치기 쉬운데, 스키마상, 테이블상 모두 인코딩세팅이 각각 들어갈때가 많아서, 아무리 상위세팅을해도 더 실무적(?)인 하위 놈들의 세팅이 바뀔리가 없다.