최근 연구실 서버를 교체 작업을 하면서 좀 많이 해맨 부분이 있어서 포스팅 합니다. ㅎ
  연구실 서버가 불안불안 해서 최근 교수님에게 말씀드리고 새 서버를 구매하였습니다. 서버관리를 제가 직접 하는지라 일단 연구실 서버의 이전작업을 추진하면서 기존 EUC-KR로 설정되 있는 리눅스 서버 환경을 UTF-8 환경으로 바꾸고 있습니다. 이 과정에서 어마어마한 삽질이 시작되더군요 -_-;; 일단 새 리눅스를 깔고 기존 서버의 파일들과 DB의 내용들은 "리눅스 서버 백업하기(MySQL & 일반 파일)" 포스팅을 참조하여 옮겨 놨습니다. 여기까지는 무난하게 작업이 되더군요ㅎ 하지만 이제 웹서버를 기존 EUC-KR에서 UTF-8로 교체하여 올리면서 문제가 시작되었습니다. 일단 기존에 연구실 서버에 있던 웹페이지들이 죄다 EUC-KR로 작성되어 있더군요.. 일단 윈도우로 다운받아서 Edit Plus에서 일일이 바꿔주었답니다.(삽질신이 강림하신거죠.. -_-;;) 그 후에 문제가 되는게 한글로 된 첨부파일들이였습니다.(왜 이런게 있는지 모르겠어요 @_@ ㅠㅠ) 아무튼 이런 경우에는 인터넷에서 스크립트를 찾아서 해결했습니다. 인터넷에서 찾은 스크립트는 아래와 같습니다. 참고하세요ㅋ(어디서 주어온지는 까먹었네요 ㅠ)

#!/bin/sh

# mv2utf gets at least one filename
if [ $# -gt 0 ]
then
        args=$@
else
        echo "Usage : $mv2utf filename1 [filename2] .....";
        exit 0
fi

# Rename euc-kr filename to utf-8 filename
for filename in $args
do
        utfname=`echo "$filename" | iconv -f euc-kr -t utf-8`;
        err=$?;
        if [ $err -eq 0 ]
        then
                if [ $filename = $utfname ]
                then
# if the filename is english file name
                        echo "$filename is not euc-kr (may be in english)"
                else
# if the filename is euc-kr
                        echo "rename $filename : $utfname";
                        mv "$filename" "$utfname"
                fi
        else
# if the filename is not euc-kr
                echo "$filename is not euc-kr"
        fi

done

  스크립트를 사용하시는 방법은요 일단 임의의 이름으로 스크립트를 생서하시고요 일단 권한설정을 실행가능하도록 설정해주셔야 합니다. 그런다음에 파일이름을 인자값으로 넣으시는데요 * 와일드 카드를 사용하실 수 있습니다.
[root@sslab data]# chmod 777 ./script
[root@sslab data]# ./script *

  DB내용을 덤프할떼는 추가 옵션이 따라야 합니다. 관련 옵션은 아래와 같습니다.
#DB내용 빼낼때
[root@localhost ~]# mysqldump -u root -p -A -f --default-character-set=utf8 > sslab.sql

#DB내용 얹을때
[root@sslab ~]# mysql -u root -p < sslab.sql

  MySQL 환경설정파일(/etc/my.cnf)에서 UTF-8로 설정해주는 설정값들은 아래와 같습니다.
[client]
#password = your_password
default-character-set=utf8

[mysqld]
init_connect=SET collation_connection = utf8_general_ci
init_connect=SET NAMES utf8
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
character-set-client-handshake = FALSE

[mysql]
default-character-set=utf8

Posted by 제소

댓글을 달아 주세요

  1. buzol 2009.10.10 02:35 신고  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 감사합니다. 좋은 내용이라 제 블로그에 스크랩을 좀 하려고 하는데 괜찮을까요?



티스토리 툴바