본문 바로가기

DataBase/MySql

문자셋 변경.


 Mysql 문자셋 변경에 대한 기록. 

 문자셋 변경을 위한 내용과 발생한 문제와 해결에 대한 기록을 남겨 다음에 이와 같은 상황이 발생

했을때, 보다 원활한 해결을 위해서 기록을 남긴다.


발단

 - Database에 한글이 포함된 내용을 입력하는데 다음과 같은 문제가 발생했다.

 - 내용은 문자열 오류인것...


1. 문자셋 확인.

- 확인 방법 1.

: status 로 확인 가능.


- 확인 방법 2.

: 또는 show variables like 'C%' 로 해도 상관없다.


2. 문자셋 변경.

 - 설정 파일을 연다.


 

 - 방법 1.

: 5.5 이상 버전에서는 다음과 같이 해줘야 한다고 하는데...

: [mysqld] 항목에 위의 내용을 추가해 준다.



-방법 2.

: 나의 Mysql 버전은 5.7 이상이지만,

: 나는 이 방법을 사용했다.


3. Mysql 재시작.

 - 서버를 재시작 해주고 잘 되었는지 상태 확인.


4. 변경 확인.

 - 변경 확인 완료.


5. 문제

 - 이 기록의 시발점이 되었던 문제는 해결 되지 않았다.

 - 테스트를 위해서 Database를 하나 더 만들어 보았다.

 - 어라... 된다... 


 문제 된 Database로 다시 돌아가서 테이블을 하나 만들고 한글을 입력해 보았다.

 - 문자열 변경전 존재하던(문제가 되었던) Database에 test_table 이라는 테이블을 하나 만들었다.


 - 1. 문자열 입력

 - 2. 실패 확인....

 - 문자열 확인을 하니... utf8 이 아니다...


6. 생성된 Database의 문자열 변경.

 - 1. 문자열 변경.

 - 2. 값 삽입... 안된다..

 - 3. 문자열은 변경되어 있다.


7. 다시 문제.

 - 테이블의 문자열을 보니... latin1이다...


8. 해결

 - 문제가된 Database 제거


 - 다시 생성... 하니 기본이 latin1 이다.


 - 다시 drop database 문제된Database 로 제거.

 - Database 생성하면서 문자셋 지정.


 - 된다...


9. 자체 결론.

 문자셋을 변경하기 전에 생성된 Database는 문자셋 변경에 적용을 받지 않는다.

 또한, 생성된 Database의 문자셋을 변경해도 이미 만들어져 있는 Table의 문자셋은 변경되지 않는다.

 깔끔하게 문자셋 변경 후, Database를 만들면서 문자셋 또한 지정해 주는 것이 제일 확실해 보인다.




'DataBase > MySql' 카테고리의 다른 글

유저 생성 및 권한 부여  (0) 2017.09.01
Mysql Workbench 설치 및 연결.  (0) 2017.08.09
ubuntu Mysql 설치.  (0) 2017.08.09