그누보드2014. 3. 16. 11:10
300x250



ㅁ MySQL 디비 테이블 문자셋 변경하기



그누보드5 가 utf-8 버전으로만 제공이 되고 있으나, 

과거의 g4 초창기 시절에는 euc-kr 버전이 많이 설치가 되었던 것은 사실이다. 


필자도 마찬가지로, 디비 charset 뿐만 아니라, php 소스의 문자셋, html 의 charset 까지 모두 euc-kr 로 해 놓고 사용했었다. 


지금이야 무조건 utf-8 이라고 외치지만, 당시에는 그러려니 했었다. 


세월이 흘러 모바일 세상과 함께 utf-8 이 대세가 되는 시절이 도래하여, 다른 시스템과의 호환을 위해서 utf-8 로의 변환이 필요한 경우가 발생한다. 실제로 ajax 로 데이터를 받아올 경우 문자셋이 다르면 한글이 깨지기도 한다. 물론 해결 방법이 없지는 않다. 


추천하는 방법은,

우선 php 소스와 html 의 charset 을 utf-8 로 변경하는 것이다. 

이게 선행되어야 한다. 그래야 그누보드5 에 있는 g4 import 에서도 별 무리없이 잘 동작한다. 


서버가 euc-kr 이고 mysql 의 테이블이 euckr 인 상태에서, php 소스와 html 의 charset 이 utf-8 이라도,

웹사이트의 한글 문제는 발생하지 않는 것으로 보인다. 


아래 글은 euc-kr 소스에서 잘 변환되지 않던 현상이 있던 글이다.

[그누보드] - 그누보드 4 를 그누보드 5 로 업그레이드 전환 컨버팅 방법



다음, 서버 이전이나 g5 로 업그레이드를 위해서 디비 테이블 charset 변경하기

서버 콘솔 상에서 변환하는 방법은 많이 검색이 되는데, 이보다 접근이 편한 phpMyAdmin 으로 작업하는 방법을 소개한다. 


1. 기존 디비에서 export 하기




기존 euckr 로 되어 있는 데이터베이스를 내보내기(export) 한다. 

이때, 디폴트로 go 를 눌러도 되지만, 일부 테이블만 내보내기 하려면 custom 을 선택하면 된다.

xxxxxxxx.sql 의 이름을 가진 텍스트 파일이 다운받아 진다. 


2. 다운받은 파일을 텍스트 에디터로 열어보면, create 문과 insert 문으로 된 sql 문장들이 있다. 

euc-kr 상태인 테이블을 export 받았기 때문에, create 문에 charset 이 euckr 로 지정이 되어있다. 


이 create 구문의 DEFAULT CHARSET=euckr 을 DEFAULT CHARSET=utf8 로 전부 수정한다. 

여기서 중요한 것은 utf-8 이 아니라 utf8 이다. '-' 이 없다. ^^



3. 새로운 디비를 import 하기

이전할 서버나 데이터베이스에 임포트하기

아래와 같은 가져오기 화면에서 위에서 수정한 파일을 찾아 go 를 한다. 


 


완료된 후에 확인을 해 보면,  아래와 같이 collection 이 utf8_general_ci 로 잘 들어갔음을 알 수 있다. 





한글이 있는 테이블을 열어 보면, 한글도 깨지지 않고 잘 나오는 것을 볼 수 있다. 


300x250
Posted by 마스타