최근 연구실 서버를 교체 작업을 하면서 좀 많이 해맨 부분이 있어서 포스팅 합니다. ㅎ
연구실 서버가 불안불안 해서 최근 교수님에게 말씀드리고 새 서버를 구매하였습니다. 서버관리를 제가 직접 하는지라 일단 연구실 서버의 이전작업을 추진하면서 기존 EUC-KR로 설정되 있는 리눅스 서버 환경을 UTF-8 환경으로 바꾸고 있습니다. 이 과정에서 어마어마한 삽질이 시작되더군요 -_-;; 일단 새 리눅스를 깔고 기존 서버의 파일들과 DB의 내용들은 "리눅스 서버 백업하기(MySQL & 일반 파일)" 포스팅을 참조하여 옮겨 놨습니다. 여기까지는 무난하게 작업이 되더군요ㅎ 하지만 이제 웹서버를 기존 EUC-KR에서 UTF-8로 교체하여 올리면서 문제가 시작되었습니다. 일단 기존에 연구실 서버에 있던 웹페이지들이 죄다 EUC-KR로 작성되어 있더군요.. 일단 윈도우로 다운받아서 Edit Plus에서 일일이 바꿔주었답니다.(삽질신이 강림하신거죠.. -_-;;) 그 후에 문제가 되는게 한글로 된 첨부파일들이였습니다.(왜 이런게 있는지 모르겠어요 @_@ ㅠㅠ) 아무튼 이런 경우에는 인터넷에서 스크립트를 찾아서 해결했습니다. 인터넷에서 찾은 스크립트는 아래와 같습니다. 참고하세요ㅋ(어디서 주어온지는 까먹었네요 ㅠ)
스크립트를 사용하시는 방법은요 일단 임의의 이름으로 스크립트를 생서하시고요 일단 권한설정을 실행가능하도록 설정해주셔야 합니다. 그런다음에 파일이름을 인자값으로 넣으시는데요 * 와일드 카드를 사용하실 수 있습니다.
DB내용을 덤프할떼는 추가 옵션이 따라야 합니다. 관련 옵션은 아래와 같습니다.
MySQL 환경설정파일(/etc/my.cnf)에서 UTF-8로 설정해주는 설정값들은 아래와 같습니다.
연구실 서버가 불안불안 해서 최근 교수님에게 말씀드리고 새 서버를 구매하였습니다. 서버관리를 제가 직접 하는지라 일단 연구실 서버의 이전작업을 추진하면서 기존 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
# 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 *
[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
[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
[mysql]
default-character-set=utf8
#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
[mysql]
default-character-set=utf8

이올린에 북마크하기
이올린에 추천하기
Prev
Rss Feed

