안녕하세요. 테크노트7을 사용하면서 mysql을 쓰고 있습니다.
질문은 다름이 아니오라,
제가 이번에 서버 이전 중인데 문제가 생겨서 질문 드려 봅니다.
mysql은 5.0.38 → 5.0.37 로 이전 하였습니다.
이전 서버가 charset이 latin1 이었습니다.
이전 해갈곳은 euckr 입니다.
검색해 보니 아래와 같은 두가지 방법이 있어서 해보았습니다.
복구후 phpMyAdmin으로 보면 Collation에 계속 latin1으로 나오고 게시판 목록 및 내용 댓글등이 다 깨져 보입니다.
이전하는 방법 좀 알려 주십시오.
PS.아래방법으로 할때 덮어 씌워도 보았고, phpMyAdmin에서 테이블 모두 삭제한 후에도 해 보았습니다.
이렇게 하면 안되는 것인가요?
---------------------------------------------------------------------------------------------------------
sql 파일을 백업할 당시의 mysql 서버의 charset과, 새로 sql파일을 들이붓는 서버의 mysql charset 이 달라서 나타나는 현상인것 같습니다.
sql 파일을 열어보시면 DEFAULT CHARSET=euckr 아니면 set names euckr 이런식으로 charset 지정된 부분이 있습니다.
(없을수도 있는데... 그래서 백업하실때 .....
mysqldump -uroot -p DB명 --default-character-set latin1 > dump_file_name.sql
이런식으로 charset 을 지정해서 백업하는게 좋습니다.)
mysql 서버 버전이랑, 백업한 환경, charset을 좀 더 알수있으면 도움을 드릴수있을지도 모르는데....저의 추측에 latin1 이나 euckr 로 백업이 된것 같습니다.
일단 sql 파일을 백업한 서버의 쉘에서 mysql에 접속하신 후, mysql> 프롬프트가 나오면
status
라고 쳐보세요. mysql 서버의 버전 같은것들이 표시가 되는데,
Server characterset: CharsetType
Db characterset: CharsetType
Client characterset: CharsetType
Conn. characterset: CharsetType
에 어떤 charset이 나와있는지 확인해 보세요.
sql 파일이 euckr 이면 이것들을 다 euckr로 맞춰야 됩니다. (옮겨가는 서버 쪽도)
서버의 관리 권한이 있다는 가정 하에...
my.cnf 를 열고
[client]
default-character-set=euckr
[mysqld]
init_connect=SET collation_connection=euckr
init_connect=SET NAMES euckr
default-character-set=euckr
character-set-server=euckr
collation-server=euckr
이렇게 맞추신 후 mysql서버를 다시 시작하고, 백업한 sql 파일을 부어 보세요.
결론은 백업 단계부터 mysql 서버 환경과 sql파일의 백업상태를 체크하셔서, 복구할 서버의 charset을 맞춰주셔야 됩니다.
|