개인적으로는.. 서버를 직접 다룰일이 극히 드물기 때문에 다소 무관심 했었던 문제입니다.
서버를 업그레이드 하면서 생기는 여러가지 문제중 하나가 바로 MySQL character set 이나..
한글 문제입니다.
아래 내용은 latin1 => euckr , 또는 euckr => utf-8 등의 데이터 케릭터셋 변환등에 유용한 방법이 되겠습니다.
다시 말해서.. 아래처럼 바꾸는 것입니다.
character_set_database | latin1 ==== > character_set_database | euckr
이게 왜 필요한지는 지식검색이나 구글링 해보세요.
예) latin1 에서 euckr 로 바꾸기
1. 기존 데이터 백업 ( latin1 환경에서 서버 구동 )
mysqldump -u jude -p test --default-character-set=latin1 --skip-opt --add-drop-table --add-locks
--disable-keys > test_dump.sql
=> default character set 을 지정해 주는것이 좋습니다.
skip-opt 는 테이블들의 character set 까지 덤프 되는것을 막고자 함입니다.
실제로 덤프된 파일을 열어보면..
마지막 문자셋 부분이 빠져 있는걸 볼수 있습니다.
2. 기존 데이터 베이스 character set 바꾸기
mysql> alter database test default character set euckr;
=> alter database 전후에.. 아래를 실행하여 바뀐 부분을 살펴보세요.
mysql> show variables like 'char%';
보시면 아시겠지만 데이터 베이스의 문자셋이 바뀌어 있습니다.
서버 업그레이드 전에 사용되던 데이터들의 문자셋이 문제가 될때..
또는 문자셋을 바꾸고자 할때 유용한 방법이라는 말씀입니다.
3. 백업 데이터 복원 ( euckr 환경에서 서버 구동 )
mysql -u jude -p test < test_dump.sql
=> 끝입니다. 너무 간단한가요? 다른 방법도 물론 있습니다만.. 좀 더 간단한 방법을 찾아보던 끝에
내린 결론입니다.
다른 방법이란..
[1]. 테이블 구조와 데이터를 분리 백업하여 INSERT 하는 방법
[2]. mysqldump 된 파일을 열어 character set 을 수동으로 변경후에 저장하고
복구하는 방법..등 입니다.
하지만 [1] 의 경우 너무 복잡하고
[2]의 경우에는 몇 메가, 몇 기가씩 될지 모르는 파일을 열어서 문자셋을 수동으로 바꾼다는게
'미친짓' 에 가깝다고 할수 있죠.
latin1 시스템을 euckr 이나 utf-8 등 다른 문자셋 환경으로 바꾸거나
업그레이드 하는 방법에 대해서는.. 여기 저기 문서들이 발에 채일만큼 많이 있으므로..
어렵지 않을것이라 생각됩니다.
'누군가에게는 이것도 팁이냐? 치워라 샹로마' 하실테지만..
또 누군가에게는 그 토록 찾아 헤매던 해결 방법 일수도... 있겠죠~
사담 : 쓸 내용은 참 많은데.. 이넘의 선천성 귀차니즘 때문에..
AJAX 클래스에 대해서 좀 더 다뤄볼까..
fsockopen 으로 POST,COOKIE, 로그인, 파일 전송.. 등을 다뤄볼까..
curl 을 다뤄볼까..
예전에 언급했던 업로드 프로그래스바를 다뤄볼까..
그것도 아니면 소켓으로 메일을 보내거나 표준화된 메일이나 게시판 따위를 다뤄볼까..
사실 머리속에 어지럽게 떠도는 것들을 표현해보면.. 정리가 되어 지는 느낌이랄까?
그래서 저한테도 상당히 도움이 됩니다.
몇 분들이 AJAX 게시판 소스를 원하셨으나.. 남에게 보일만큼 정리가 되지 않은 관계로
다음으로 미뤘습니다.
따지고 보면 AJAX 라 불리우는 대상 자체는 그다지 매력적이지도 않고 어렵기는 커녕 너무 간단합니다.
간단한 스크립트 코드에 지나지 않지만.. 요상하게 웹 2.0 + 표준화와 맞물려서..
붐업되고 있네요.
또 뭔 얘길 하는건지..
아뭏든 조만간에 방문자도 없는 블로그는 접어버리고.. 개인 홈페이지에 둥지를 틀어야 겠습니다.
아무래도 누가 만들어 놓은것이라 맘대로 만질수도 없고..
블로그 라는 틀 자체도 매우 짜증 스럽네고.. 대체 블로그를 왜 쓰는지 건지 -_-~
오늘도 웹과 인터넷의 바다에서 즐거운 항해 하십시요.
우주 만큼은 아니지만 바다도 꽤 넓지 않습니까?

댓글목록
슈퍼아이피님의 댓글
MySQL 데이터 버전 4.1 -> 4.0 으로 다운그레이드 하는 방법
mysqldump --create-options --compatible=mysql40 -uroot -p DBname >b.sql
mysql 4.1 버전부터는 mysqldump를 그냥 실행하면 utf-8 코드로 백업 받습니다.
따라서 mysqldump를 할때 --default-character-set=euckr 옵셥을 주면 euckr 코드로 덤프 받습니다.
4.1버전의 경우 latin1 으로 기본세팅이 되므로 euckr 대신 latin1으로 해야할 수도 있습니다.
인서트문이 한줄씩 나오지 않을때는 --extended-insert=FALSE 를 추가합니다.
그래서 --default-character-set=euckr 이거랑 같이 해주니
--compatible=mysql40 --default-character-set=euckr 이렇게 해주니 덤프나 복원이나 잘됩니다.
제대로 복원이 되었습니다.