database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 7278 게시물 읽기
No. 7278
흠 8.0과 8.2 문자셋 관련 질문
작성자
장현성(siche)
작성일
2007-12-04 20:47
조회수
6,036

안녕하세요..

얼마전까지 8.0.6 을 사용하다가 큰맘 먹고 8.2.4 로 upgrade 를 했습니다~


그리고 나서 문자셋 관련 변경사항이 꽤 되어서 그런지 프로그램 뜯어고치고 고생고생해서

겨우 어느정도 돌아가고 있는데 불안불안해서 좀 살펴보다 보니 이상한 점이 하나 있어서 질문드립니다~


기존 8.0.6에서 저는

.psqlrc 파일에


\set AUTOCOMMIT off

\timing

set client_encoding to uhc


이렇게 해두고 사용합니다~


이상태에서 psql 실행해서..


siche=> create table a (a serial, b text);

NOTICE:  CREATE TABLE will create implicit sequence "a_a_seq" for serial column "a.a"

CREATE TABLE

Time: 75.719 ms

siche=> 


근데 8.2.4 에서 .psqlrc 파일에 위와 동일하게 쓰고 하면


hsjang=> create table a (a serial, b text);

서버가 갑자기 연결을 닫았음

        이런 처리는 클라이언트의 요구를 처리하는 동안이나

        처리하기 전에 서버가 갑자기 종료되었음을 의미함

서버로부터 연결이 끊어졌습니다. 다시 연결을 시도합니다: 실패.

!>


이렇게 됩니다..

8.2 쓰면서부터 저런식으로 끊어지는 경우가 굉장히 많아졌는데

도대체 뭐가 달라진건지 모르겠습니다..


다만 8.2.4에서도 .psqlrc에 set client_encoding to uhc 라인을 지우고 접속해서

해보면 아주 잘됩니다만 대신 \dt 이런 명령이 문자셋이 틀리다고 안되죠 -_-;;


혹시 이런 문제점 있는 분들 안계신가요??

아, 참고로 저는 서버의 기본 encoding 은 euckr 을 사용하고(터미널)

initdb 는 -E UTF-8 --lc-collate=C 이고 DATABASE encoding 도 UTF8 로 해서 사용합니다..

물론 이렇게 하고 uhc 로 client_encoding 을 변경해서 사용하지요~~


8.2 오기전까지는 저렇게 client_encoding 을 변경해서 사용하면 전혀 문제가 없었는데

8.2 오고나서는 툭하면 문자셋이 없다면서 끊어지고 로그도 엄청쌓이고 죽겠습니다 ㅠㅠ

이 글에 대한 댓글이 총 3건 있습니다.

서버 플랫폼이 뭔지요?


만일 ms windows 환경이라면, initdb 는 -E UTF-8 --no-locale 로 하셔야할 것 같습니다. 


이 관련 문제는 오래된 문제점이거든요. 


ms windows 환경이 아니면, 급한 대로 한국어 메시지 관련을 모두 disable 처리하고 작업하십시오. 

쉘 프롬프트에서

LANG=C psql ....

이런식으로 잠깐 psql 로케일 환경이 한국어 환경이 아니라고 지정하면 저런 문제는 없어질 것같은데, 


저런 문제는 일반적은 메시지 자국어화 (gettext) 작업 도중발생한 문제거든요.

문제를 근본적으로 풀어보려면, 일단 그 쪽 관련 무엇이 문제인지를 찾아야하는데, 

질문 사항으로 짐작이 잘 안가네요.



김상기(ioseph)님이 2007-12-06 13:54에 작성한 댓글입니다.

아~ 제가 정신없이 쭉~~ 적어놓고 정작 OS는 빼먹었군요..
리눅스 환경입니다..

근데 말씀하신 것처럼 LANG=C psql 은 이미 해보았는데
결과는 똑같습니다.. 대신 에러가 영어로 나올뿐 -_-;;

.psqlrc 에서 uhc 셋하는 부분을 빼지 않으면 똑같네요..

그리고보니까,
위에 쓴글에 8.0 과 8.2 를 비교했는데 두개 설치 한 것에 차이점이 있습니다..

8.0은 컴파일시 nls 를 enable 하지 않고 컴파일 해서 무조건 영어로만 나오고
8.2는 nls 를 enable 하고 컴파일 한 것입니다..

8.2 도 아예 nls 를 빼고 컴파일해서 해보면 되려나 모르겠네요..
쩝쩝....

장현성(siche)님이 2007-12-06 15:02에 작성한 댓글입니다.
이 댓글은 2007-12-06 15:21에 마지막으로 수정되었습니다.

해결했습니다 -_-;;;;;

--enable-nls  이거 빼고 컴파일 해서 사용하니 잘되네요...허걱;;

8.0 까지는 제가 빌드해서 쓰다가,
8.2 올리면서 빌드되어 있는 rpm 가져다 썼더니 이런 문제가;;;

psql 에서 한글 나오면서 부터 어째 돌아가는게 이상하다~~ 느끼고 있었는데
nls 빼고 영어로 나오니 이렇게 깔끔하게 돌아갈 수가 없군요...

.psqlrc 에 autocommit off  해두고 쓰는게 편해서 그렇게 쓰고 있었는데
nls 들어간 놈에선 commit 만 해도 끊어지고 해서 환장할 노릇이었는데 큭큭..

암튼 상기님 덕분에 해결했네요~
감사합니다~~

장현성(siche)님이 2007-12-06 15:37에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
7283자료실의 soundex 와 initial_ko 안되네요.. [4]
tyro
2007-12-13
5228
7282PostgreSQL 암호화 적용 [1]
전주원
2007-12-12
6283
7281REPLACE FUNCTION에 대해서(PL/SQL) [4]
2007-12-07
6110
7278흠 8.0과 8.2 문자셋 관련 질문 [3]
장현성
2007-12-04
6036
7277디비접속 시 mac address로 접근이 가능한가요 [1]
한수부탁요.
2007-12-03
5414
7276제로보드XE 를 pgsql 에서도 쓸수 있었으면 좋겠네요.. [11]
김태훈
2007-12-01
6222
7275create role 이 먹질 않아요. [1]
박일룡
2007-11-30
5665
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다