그누 처음 설치시 DB 한글깨짐 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

그누 처음 설치시 DB 한글깨짐 정보

그누 처음 설치시 DB 한글깨짐

본문

한동안 기존에 운영하던 사이트를 그누로 잘 운영하고 있었습니다.
최근 새로운 사이트를 하나 만드려고, 그누 최신버전을 받아 설치했습니다.
 
가쁜한 마음으로 로그인 하는데, 뭐라 알 수 없는 오류가 뜨더군요..
 
select * from g4_member where mb_id = TRIM('admin')
1267 : Illegal mix of collations (euckr_korean_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='
error file : /dramanet/board/bbs/login_check.php
 
뭔지 몰라 여기저기 찾기 시작했습니다.
데이터 베이스 인코딩이라는데... 여기저기 뒤지니 UTF8로 설정된 서버에 대한 내용이나, MySQL을 재설치 하라 등등의 내용이 나오네요..
 
그누 질문과 답변에도 여러 내용들이 있었으나, 제가 초보라 그런지 해결이 안되네요...
 
예전에 어떠한 문제로 데이터베이스를 마이그레이션 한거 같은데, 그 이후에는 데이터베이스의 모든 한글이 깨져 있습니다.
기존 운영하던 사이트에는 한글이 제대로 나오지만 데이터베이스에서는 깨져 있습니다.
 
현재 MySQL 설정은 아래와 같습니다.
 
mysql> status
--------------
C:\Program Files\MySQL\MySQL Server 4.1\bin\mysql.exe  Ver 14.7 Distrib 4.1.12,
for Win32 (ia32)
Connection id:          33307
Current database:
Current user:          root@localhost
SSL:                    Not in use
Using delimiter:        ;
Server version:        4.1.12-nt
Protocol version:      10
Connection:            localhost via TCP/IP
Server characterset:    euckr
Db    characterset:    euckr
Client characterset:    euckr
Conn.  characterset:    euckr
TCP port:              3306
Uptime:                24 days 20 hours 42 min 49 sec

mysql> show variables like 'c%';
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value    |
+--------------------------+---------------------------------------------------------+
| character_set_client    | euckr    |
| character_set_connection | euckr    |
| character_set_database  | euckr    |
| character_set_results    | euckr    |
| character_set_server    | euckr    |
| character_set_system    | utf8    |
| character_sets_dir      | C:\Program Files\MySQL\MySQL Server 4.1\share\charsets/ |
| collation_connection    | euckr_korean_ci    |
| collation_database      | euckr_korean_ci    |
| collation_server        | euckr_korean_ci    |
| concurrent_insert        | ON    |
| connect_timeout          | 5    |
+--------------------------+---------------------------------------------------------+

mysql> SELECT COLLATION(USER()), COLLATION('@');
+-------------------+-----------------+
| COLLATION(USER()) | COLLATION('@')  |
+-------------------+-----------------+
| utf8_general_ci  | euckr_korean_ci |
+-------------------+-----------------+
# 질문 1
기존에 운영하던 데이터 베이스의 한글 깨짐 문제를 latin1로 덤프받아 재입력하려고 했는데 한글 깨짐은 그대로 인데, 한글이 제대로 보이게 하는 방법
mysqldump -u**** -p --default-character-set=latin1 ****** > ******.bak
mysql -u**** -p ****** < ******.bak
 
# 질문 2
그누 설치를 하면 오류 없이, 한글 깨짐이 없게 MySQL 환경을 변경하는 방법
 
위 두가지 질문 드립니다.
 
현재 호스팅을 하고 있어서 재설치는 못하는 상황입니다. 현 상황에서 설정 변경으로 해결할 수 있는 방법을 찾고 있습니다.
 
포인트 부족으로 많이 못드려 죄송하네요 ㅠㅠ

댓글 전체

그닌깐 말그대로
예를 들어 mysql을  2.10버전을 쓰는데
mysql 2.40버전으로 옴겼다가
다시 2.10으로 옴겼나보군요
이럴때는 저두 그랬는데요
일단 그누보드를 새로 설치 하닌깐 기존에 있던 데이타베이스가 살아지더라구요
혹시라고 기존에 데이터베이스가 있는건 빽업해놓구 해보세요..
그럼해결되구요
하지만 사이트에서 혹시라도 admin들어가는데 그랬다고 하면 login_check.php
에서 에러가뜨닌깐
그누보드 4.11받아서 bbs폴더에서 login_check.php만찾아서 자신의 폴더에 login_check.php
붙여넣기 하면 해결됩니다 ^^
기존 운영하던 사이트는 디비에서 한글이 깨지더라도 웹상에서는 제대로 나오고, 에러 또한 없습니다.
그러나 그냥 두기에는 신경이 쓰여 디비에서 제대로 한글이 보이도록 하기 위해서 질문 드린거고요.

또 한가지는 그누 4.11 신규 설치 후, 문자셋으로 인하여 로그인시 에러가 나고, 한글이 깨지는 현상을 MySQL의 환경 설정이나 그누 자체를 건드리지 않고 다른 설정을 하여, 수정 없이 그누가 제대로 작동하기 위한 방법을 질문 드린 겁니다.

천국의 요정님께서 답변을 주셨지만 저에게는 해당이 안되는 것 같네요..
그리고 MySQL은 마이너업글하지 않았습니다.
그누 새로 설치후 바로 데이타 덤프 뜨니 한글이 깨지네요..
덤프 뜰때 default-character-set을 latin1, euckr, utf8 로 해봤는데 모두 한글이 깨짐..

대체 어떻게 해야 한글이 안깨지나요??
php로 show variables like 'c%';를 실행하니 이렇게 나오네요..

character_set_client | latin1
character_set_connection | latin1
character_set_database | euckr
character_set_results | latin1
character_set_server | euckr
character_set_system | utf8
character_sets_dir | C:\Program Files\MySQL\MySQL Server 4.1\share\charsets/


collation_connection | latin1_swedish_ci
collation_database | euckr_korean_ci
collation_server | euckr_korean_ci

서버에서는 latin1을 euckr로 제대로 변경이 되었는데 php 익스로 실행시켰더니 이런 시추에이션이...
아마 이것 때문에 안맞아서 그러는것 같은데 수정하는 방법 좀 알려주세요..
현재 데이터베이스 와 그누보드의 언어셋이 서로 다른것 같네요.

PHP MYADMIN을 사용하신다면 언어셋을 변경해서 데이터베이스의 데이터들을 확인해 보시면

데이터베이스의 언어셋이 무엇인지 정확하게 알 수 있습니다.

아니면 호스팅업체에 문의를 하시면 정확하게 알 수 있으니 문의 해 보시는 것이 좋을듯 하네요.

즉 그누보드는 UTF-8 이고 데이터베이스는 EUC-KR인것 같습니다.

이전에 데이터 베이스가 EUC-KR이라면 그누보드를 EUC-KR로
 
이전에 데이터 베이스가 UTF-8 이라면 그누보드도 UTF-8 로 인스톨해보시면 좋을 것 같네요.
제가 원한 답과는 전혀 상관 없는 내용이지만, 답변 채택을 안하면 글을 못올리게 되어 있네요.
많은 포인트를 걸었는데도 불구하고 원하는 답변을 얻지 못해 억울하네요..
답변 채택을 안하면 포인트를 돌려받을 수 있는 방법이 없네요 ㅠ.ㅠ
서버에서 직접 실행 문자셋 쿼리 결과와 익스를 통한 문자셋 쿼리결과가 다름니다.

character_set_client          서버 : euckr    익스 : latin1
character_set_connection  서버 : euckr    익스 : latin1
character_set_results        서버 : euckr    익스 : latin1
collation_connection          서버 : euckr_korean_ci    익스 :l latin1_swedish_ci

일치 시키는 법은 그누 commom.php에
mysql_query("set session character_set_connection=euckr;");
mysql_query("set session character_set_results=euckr;");
mysql_query("set session character_set_client=euckr;");
를 삽입하면 됩니다.

이러면 일단 언어셋이 동일하게 나오며, 1267 : Illegal mix of collations 에러는 안뜹니다.

그러나 여전히 한글은 깨져 나오며, 직접 쿼리를 날려도 깨져나오고, DB dump를 latin1, ecukr, utf8 등의 character-set을 설정하여 받아도 마찮가지 입니다.

서버는 windows 2003, IIS + PHP 5.x + MySQL 4.1.12을 직접 운영하고 있습니다.
그누는 UTF8 버전이 아닌 것을 받아서 설치 했습니다. UTF8로 설치해봐도 마찮가지 입니다.

그누 파일을 안건드리고 해결 할 수 있는 방법 좀 알려주세요...
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT