이전후의 문제입니다. mysql에서 찾지 못해서 여기에 질문드립니다. > 자유게시판

자유게시판

이전후의 문제입니다. mysql에서 찾지 못해서 여기에 질문드립니다. 정보

이전후의 문제입니다. mysql에서 찾지 못해서 여기에 질문드립니다.

본문

DB문제인대요...
euckr에서 utf8 로 이전했습니다.
카테고리에서 이상이 생기더군요
 
DB를 보니 모두가 euckr_korean_ci  입니다.
변경을 누르고 utf8_eneric_ci 를 눌러도 다시 보면 euckr_korean_ci 입니다.
 
이것을 모두 utf8로 바꾸는 방법은 없나요?
한방에 해결할 수 있다면 좋은데....
 
DB원본은 갖고 있습니다.
 
 
고수님들의 조언을 기다립니다.
 
 
추천
0
  • 복사

댓글 67개

디비원본을 손대서 다시 설치하는 것이라면,
화일을 통재로 올리고 ssh로 할 수 밖에 없잖아요.
utf8 로 인코딩을 어떻게 하지요?
* 기존의 EUC-KR DB를 UTF-8로 변경하기 *

 
euc-kr에서 작성된 db를 백업해서 utf8에 넣을 생각인데..이건 조금더 해보고 글을 올리겠습니다.
(Test해봤는데 잘되네요~^^)

 
euc-kr로 작성된 db를 백업해서 utf8 db에 넣을때는..
mysqldump를 뜬후에, 덤프뜬 파일을 다음 스크립트를 통해 utf8로 변환해줍니다.

 
스크립트명: iconv.sh
---------------------------------
#!/bin/sh
iconv -feuc-kr -tutf-8 $1 > out.txt
rm -rf $1
mv out.txt $1
---------------------------------

 
즉 다음과 같이 해주시면 out라는 덤프가 utf8로 바뀝니다.
$mysqldump -uroot -p패스워드 디비명 > out
$iconv.sh out

 
그 후, 이 덤프를 utf8 시스템의 utf8 db에 넣어주시면 됩니다.^_^
스크립트명: iconv.sh
---------------------------------
#!/bin/sh
iconv -feuc-kr -tutf-8 $1 > out.txt
rm -rf $1
mv out.txt $1
---------------------------------

그러면 위부분을 어떻게 하지요?
그누 설치 과정중 텔넷 내용이 보이실거에요
명령어로 명령을 내리는 형태죠
참고
http://sir.co.kr/manual/kcp_youngcart4/?man=g4.install2.htm
헌이님 갑사합니다.
디비는 이미 euckr 로 백업해둔 것 밖에는 사용할 수 없어요.

그 백업받은 디비를 에디터등으로 바꾸던지,
그렇지 않으면 지금 설치되어있는 euckr 로 된 디비를 ssh 로 들어가서 mysql로 바구든지,
그렇지 않으면 phpadmin로 바꾸는 경우입니다.
eukr 서버나 호스팅이 있다면  넣으시고 다시 덤프 하셔도 야될듯합니다.
시간이 좀걸려도 ....
좀 손거스럽지만 처음으로 다시 돌아가서 하시는게 안전 할듯
이미 euckr 호스팅부분은 없어졌어요.

달리 방법이 없나요?

중도동을 해서라도 제대로 해놔야 되는 것인데....
헌이님 계속되는 답변 감사드립니다.

저는 호스팅받는 입장이라서, 그리고 겨우겨우 홈피만드는 정도라서 apmsetup이 무언인지도 몰라요.

이미 설치되어있는 디비를 텔렛으로 들어가서 하는 방법을 선택해야 할 것 같아요.


에구 텔렛은 지금 없고, 뿌디로는 ssh밖에는 들어가지질 않는군요...
디비백업받은 파일을 에디터에서 인코딩을 변경해서 인서트 해보십시요

그누 에 찾아 보니 있네요
http://sir.co.kr/bbs/board.php?bo_table=g4_qa&wr_id=56367&page=2049
에디터에서 인코딩을 변경한다는 말이
에디터로 불러와서
euckr 요런 글자를 다 utf8 로 바꾸어준다는 뜻인가요?
홈페이지상에서건, 받아논 디비를 에데터로 보는 상황이건간에
글씨는 전혀 제대로 나옵니다.

단지 홈페이지상에서 카테고리부분이 자꾸 문제가 되는 상황입니다.
카테고리부분이 중요한 상황인지라, 이부분이 혹시 디비문제가 아닌가 해서요.
http://jemulpo.net/bbs/board.php?bo_table=Link6&wr_id=93&sca=%EA%B0%9C%EC%9D%5C%B8%2C%EC%B7%A8%EB%AF%B8
를 보시면 밑에 에러가 뜨고, 커테고리선택할 때에도 선택시의 상황이 표시가안되는 것이 있습니다.
일단 텔렛으로 들어가야 한다는 말씀이군요.
헌이님 링크따라서 어떻게 해서든지 들어가보지요...

근데 텔렛 들어가서
#!/bin/sh
iconv -feuc-kr -tutf-8 $1 > out.txt
rm -rf $1
mv out.txt $1
--------------
라고 치기만 하면 되요?
에디터를 여셔서(내용중) euckr ----->utf8 변경후  이름바꾸기 하시면 전체 바뀔겁니다.

다른이름으로 저장시 UTF8 인코딩 저장 하시고 올려보십시요

경고!! 원본디비는 따로 복사 해놓고 하십시요


가까운곳이라면 그냥 해드렸을터인데... 많은 도움 못드려서 죄송합니다
morning 님 sql.txt 이것을 열으셔서 내용 바꾸지 마시고
다른이름 저장시 utf8코딩후 저장하시면 된답니다.

한글로 정상적으로 표기된다면 sql을 굳이 다시 import 할 필요가 없다네요 .

활용팁에 첨부 합니다.
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=28649&page=1
아고머리야 ㅎㅎ
apm에서 확인결과 위에꺼는 안됩니다.

텍스트편집기에서 ansi string(euc-kr)이나 unicode(utf8)로 상호 변환 가능한듯합니다.

다바꾸셔야할듯
즉테이블이 생성면 euc kr 바뀐다는거죠 ㅡㅡ

제일빠르고 좋은 방법은

db.sql 를 euc kr 올리셔서 utf8 덤프 받으시는 방법이 제일 안전하다고 생각 합니다.
알았습니다.
내일 다시 설치하고 받아야 겠네요.

저때문에 애를 많이 쓰셨습니다.
정성어린 가르치심에 감사드립니다.
좋은 밤 되십시요.
저도 예전에 변환한 적이 있었는데
댓글에 헌이님이 언급한 내용과 동일한 방법입니다.
다시한번 정리하자면...
1. 에디트플러스에서 백업한 파일을 불러옵니다.
2. 바꾸기 기능을 이용하여 CHARSET=euckr 부분을 CHARSET=utf8 로 모두 바꿈니다.
3. 바꾼 후 에디트플러스에서 저장시 "새이름으로..."를 선택해서 인코딩을 "utf-8"로 선택하고 저장을 합니다.
4. phpmyadmin의 import 화면에서 위에서 저장한 파일을 불러온 후
  파일문자셋 부분을 "utf8"로 선택하고  임포트합니다.
카테고리에서만 이상이 생기나요?
db가 잘못 이전되면 보통 사이트 전체가 깨져서 나와야 되는데,
카테고리만 깨지는거면, db가 euckr로 정상적으로 생성되었고, 웹페이지만 utf8인것 같네요.
헌이님 말씀따라 이리해보고 저리해보니 증상도 왔다 갔다 합니다.

지금 증상은
http://jemulpo.net/bbs/board.php?bo_table=Link6&wr_id=96&sca=%EA%B0%9C%EC%9D%5C%B8%2C%EC%B7%A8%EB%AF%B8
이구요,

문제가 되는 카테고리의 공통점은 "복지,봉사" 등처럼 카테고리안에 쉽표가 포함되어있는 것에서만 나타납니다.
얼핏 감이 잡힙니다.
테이블은 euckr구조로 , 데이타들은 utf8 로 되어있을 때 나타나는 현상같아요.

일단 홈을 다른 곳에 euckr 로 설치해볼 겁니다.
에구 뿌리뽑다 세월 다가겠어요.
일단 euckr로 다시 설치해놓고,
시간나면 헌이님 말씀대로 euckr디비에서 디비를 다시 뽑아오는 방식을 사용해야 할 것 같아요.
db를 확인할순 없지만 db변환은 정상적으로 된것 같아 보입니다.
http://jemulpo.net/bbs/board.php?bo_table=Link6&wr_id=96&sca=%EA%B0%9C%EC%9D%5C%B8%2C%EC%B7%A8%EB%AF%B8
위의 링크 부분이 아래처럼 되어야 하는데 왜 위에 처럼 되는지를 확인해야 할것 같습니다.
http://jemulpo.net/bbs/board.php?bo_table=Link6&wr_id=96&sca=%EA%B0%9C%EC%9D%B8%2C%EC%B7%A8%EB%AF%B8
요거이 카테고리와 관련된 것 같아요.
이런 문제가 발생하는 경우는 항상 카케고리에 "복지,봉사"처럼 쉽표가 들어가 있는 경우입니다.
물론 쉼표가 있어도 정상적으로 되는 카테고리도 있습니다.

게시판리스트를 통해서 들어갈 때에는 정상으로 나오고,
카테고리를 통해서 들어갈 때에는 http://jemulpo.net/bbs/board.php?bo_table=Link6&wr_id=96&sca=%EA%B0%9C%EC%9D%5C%B8%2C%EC%B7%A8%EB%AF%B8  처럼 나오는 것이지요.
아래는 "개인,취미" 리스트 부분의 링크입니다.
http://jemulpo.net/bbs/board.php?bo_table=Link6&sca=%EA%B0%9C%EC%9D%B8%2C%EC%B7%A8%EB%AF%B8
아래는 "개인,취미" 카테고리 게시물 중에서 클릭했을때 뷰화면 링크입니다.
http://jemulpo.net/bbs/board.php?bo_table=Link6&wr_id=96&sca=%EA%B0%9C%EC%9D%5C%B8%2C%EC%B7%A8%EB%AF%B8

위의 두 링크에서 카테고리 부분이 같아야 하는데 틀립니다.
리스트 부분의 카테고리 내용이 맞습니다.
그래서 게시판 스킨을 확인해 봐야 되지 않을까 생각해 봅니다.
sca=%EA%B0%9C%EC%9D%B8%2C%EC%B7%A8%EB%AF%B8        (O)
sca=%EA%B0%9C%EC%9D%5C%B8%2C%EC%B7%A8%EB%AF%B8  (X)
제힘으로는 카테고리에 영향을 미칠만한 것을 찾지 못하겠어요.
아래 에러메세지를 보면 문제셋문제 아닐까요?
---------------------
select distinct wr_parent from g4_write_Link6 where ca_name = '개��\\\\\�,취미' and (wr_num between '-98' and '9902')

1267 : Illegal mix of collations (euckr_korean_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='

error file : /bbs/board.php
phpmyadmin에서 테이블의 Collation이 "utf8_general_ci"로 되어있나요...
그리고 g4_write_Link6 테이블의 ca_name(카테고리명) 값이 깨지지 않고 정상적으로 저장이 되어 있는지요?
GET 으로 전달되는 ca_name 이 utf-8  db 또는 php와 충돌나는 상황인것 같습니다.
코드에서 ca_name에 대해서만 iconv를 적용하거나,
db 변환을 다시 해야 할것 같네요.

깔끔하게 처리할려면 db변환을 다시 하는게 좋을것 같습니다.

이건 개발 지식이 있는 사람이 해야지, 대충 해서는 될일이 아닙니다.
그냥 http://jemulpo.realmind.net 으로 할것입니다.
여유있을 땡 다시 백업부터 헌이님방식대로 다시하렵니다.

헌이님,명랑페인님,비타민님,세율님,똥싼너구리님...
그동안 관심가져주신 고수님들께 정말 감사드립니다.

앞으로도 좋은 가르치심 부탁드립니다.
에구 아직 안주무셨어요?
그런경우가 생긴다면 몰라도, 그럴 경우가 아마 없을 겁니다.

좀 더 계실거면,
테이블에 라운딩하는 소스 하나 부탁드립니다.
테이블 않게 색갈넣지 않고요...
이상하게 스타일로 하면 안되요.
활용팁에 올려 놓았습니다.
 자야겠습니다. ^^ 안녕히 주므세요
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=28663
답글 감사드립니다.

jquery.coner.js 를 다운받고, 그누보드/js/ 에 넣고
include 후에 <div>나 <table>에서는 어떻게 입력하나요?
예를 하나 들어주시면 좋겠어요.
http://www.ulsanin.net
여기에 포커스하고 라운드 레이어를 참조 하시면 됩니다.

jquery 셀렉터를 이용해서 아래와 같이 적용하시면 됩니다.

$('[id^=round_]').corner("round 4px");

노파심에 설명 덧붙이자면..
id값이 round_ 로 시작하는 객체 모두에 라운딩을 한다겠죠.
클로이님 감사합니다.

jquery 셀렉트를 이용한다는 말은 무슨 뜻인가요?
죄송하지만 댓글로 어떻게 불러왔는지 기록해주셨으면 감사하겠습니다.

그리고 $('[id^=round_]').corner("round 4px"); 를 어디에 붙여야하나요?
jquery 와 플러그인이 로드되어 있다는 가정하에
예제)
<div id='round_login' style='width:100px;height:100px;border:1px solid #cccccc;'></div>

<script>
$(document).ready(function(){
$('#round_login').corner("round 4px");
});
</script>
감사합니다.
스크립트처리하라는 말이었군요

"jquery 와 플러그인이 로드되어 있다"

1
플러그인은 jquery.coner.js 을 말하는 것이지요?

2
jquery 은 그누보드베포버전에 있는 jquery-1.4.2.min.js 인가요?

3
죄송하지만 로드는 어떻게 해야 하나요?
1. 네
2. 맞아요
3.
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="http://malsup.github.com/jquery.corner.js"></script>
© SIRSOFT
현재 페이지 제일 처음으로