[출처] http://ooz.co.kr/158


Putty 프로그램을 사용하다 보면 종종 어떤 서버에서는 한글이 깨져서 보이는 경우가 있습니다.

 

Putty 가 기본으로 UTF-8 문자 집합(Character Set)을 사용하는데, 서버의 locale 인코딩 값이 UTF-8 이 아닌 경우에 문제가 발생합니다.

보통 한국어로 된 리눅스 서버를 운용한다면 아마 서버 locale이 EUC-KR 문자 집합으로 되어 있을 것입니다.

 

참고로 서버 인코딩 정보를 확인하는 방법은 서버에 접속하여 locale 명령어를 실행하면 됩니다.

 

아래와 같이 서버에 접속하여 안내 문구가 나올만한 명령어를 입력해봅니다.

 

[aaa@localhost ~]$ cd aabbccddee (존재하지 않는 디렉토리)

 

 

무언가 메시지가 떴는데, 전혀 알아볼 수가 없네요.

 

어떻게 해야 할까요? 문자 집합을 서로 맞추어 주면 될 것 같은데요.

서버를 UTF-8 환경으로 변경해 줄 수도 있지만, 계속 사용해왔던 서버의 환경을 변경하는 것은 조금 꺼려지기도 하는 부분입니다.

그리고 굳이 그럴 필요도 없이 Putty의 환경을 변경함으로써, 간단히 해결될 문제이기도 하지요.

 

단순히 Putty 의 문자 집합을 변경해 보도록 하겠습니다.

 

 

방법1) 가장 쉬운 방법! - Putty 의 설정 화면에서 문자 집합 설정.

 

 PuTTY를 실행시킵니다!!

 접속하려는 Host Name을 입력 또는 하단의 저장 목록에서 로드(Load) 합니다.

 그리고 좌측 트리 메뉴에서 Window - Translation 을 선택합니다.

 

 

 

아하! 여기가 접속 환경에 맞는 문자 집합을 설정할 수 있는 곳이군요!

 

Remote character set 선택 박스에서 서버의 문자 집합을 선택하면 됩니다.

 

그런데 EUC-KR 은 찾아봐도 없군요. 그럼 EUC-KR 과 호환이 되는 문자 집합이 있을까요?

네 있습니다. CP949 인코딩은 EUC-KR 의 확장된 버전으로 하위 호환성을 가지고 있는 문자 집합니다.

 

 

여기서 CP949를 선택하여 주면 문제가 해결됩니다.! - 끝 -

 

 

앗!! 이런.. 제 PuTTY에 CP949 문자 집합 또한 없습니다.

강제로 CP949를 입력하고, 접속해도 제대로 한글이 보이지 않습니다.

 

 

방법2) 다음 방법! - Putty 의 레지스트리에서 FontCharSet 설정하기

그러면 이제 레지스트리를 건드릴 차례입니다. 해당 문자 집합 설정 정보를 저장하는 레지스트리에 강제로 우리가 원하는 문자 집합을 설정해 보겠습니다.

 

윈도우 하단의 시작 버튼을 클릭하여 [실행] - regedit.exe 를 입력한 후, 실행합니다.

  

 

 

레지스트리 편집기가 실행됩니다.

 

좌측 트리 메뉴에서

 

[HKEY_CURRENT_USER - Software - SimonTatham - Putty - Sessions]

 

로 들어갑니다.

 

Sessions 내에는 Putty에 등록된 서버 접속 정보 목록들이 있습니다.

한글이 깨지는 서버의 세션 정보를 클릭합니다.

 

 

그리고 우측 메뉴에서 FontCharSet 항목을 확인합니다. 값이 0x00000000 (0) 으로 설정되어 있습니다.

이를 16진수로 81(0x81) 또는 10진수로 129 를 입력한 후, 확인을 누릅니다.

 

 

0x81 은 한글의 Charset 을 의미하는 값입니다.

 

아래와 같이 FontCharSet 이 0x00000081 (129) 로 변경되었습니다.

 

 

이제 다시 PuTTY로 접속해 보겠습니다.!!

문제가 해결 되었습니다. - 끝-

 

아니 아직도 안된다구요!!!!?!?!?!??!

 

 

방법3) 마지막 방법! - Putty 의 레지스트리에서 LineCodePage 설정하기

 

 Putty에는 CharacterSet을 지정할 수 있는 또다른 항목이 있습니다.

 

 

 

 LineCodePage 인데, 값이 아마 기본 인코딩을 사용한다는 Default 값으로 설정되어 있던지, 또는 공란으로 되어 있을 것입니다. 

 여기에는 실제 문자 집합 명을 입력할 수 있습니다.

 

 아래와 같이 LineCodePage 의 값을 CP949 로 설정합니다.

 

 

 

 값이 정상적으로 설정되었습니다. 이제 서버에 다시 접속해 보겠습니다.

 

 

 

 드디어 한글이 보입니다!! (이 방법까지 썼는데, 한글이 제대로 보이지 않는다면 서버가 한글이 아닌 다른 인코딩으로 되어 있는 경우일 것입니다. 서버에 맞는 문자 집합만 설정해 주시면 됩니다. 단, 문자 집합이 한글이 아닌 서버겠죠?^^)

 

 

문제가 해결되었습니다. - 정말 끝! -

 

 

많은 분들에게 도움이 되었으면 합니다.^^


반응형

'OS > LINUX' 카테고리의 다른 글

[CentOS 6.6] FTP 설정  (1) 2016.02.17
mkfs 로 생성 시 오류  (0) 2015.10.15

또 한번의 삽질 추가.


임시 DB를 설치 한 이후 외부에서 접속을 진행 하였더니,

접속이 안되어서 확인.


처음에는 쉽게 port로 생각하여 Open 하였지만 연결 실패..


유저도 제대로 생각했다고 했지만 여기서 함정..

역시...난 멍청한 것인가...




1. Linux Port Open

vi /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

-A RH-Firewall-1-OUTPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT


또는 아래와 같이 명령어 입력

[root@localhost sysconfig]# iptables -I INPUT 1 -p tcp --dport 3306 -j ACCEPT

[root@localhost sysconfig]# iptables -I OUTPUT 1 -p tcp --dport 3306 -j ACCEPT


하지만...failed...

>> ERROR 1130 오류 코드


ERROR 1130 (00000): Host 'x.x.x.x' is not allowed to connect to this MySQL server


2. User 생성 확인

확인을 했더니 IP가 제대로 입력이 안되었음...OTL...단순히 local host로만 생성을 한 것임...



아래와 같이 추가로 생성하여 해결



참조 : http://imdsoho.tistory.com/entry/mysql-%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%B6%94%EA%B0%80-%EB%B0%8F-error-1130-%EC%B2%98%EB%A6%AC

반응형

OS 재기동이 필요한 시점에 문제가 발생할 소지가 있기 때문에

이럴 때를 대비해서 백업용 DB가 필요하다.


문서로 정리 하였지만, 

작성한 것을 복-붙 이다.




임시 MySQL DB 구축

작성일 : 2016.02.18

작성자 : Louis.Kim

mysql> select version();

+-------------+

| version()   |

+-------------+

| 3.23.58-log |

+-------------+

1 row in set (0.00 sec)

 

1. zip 파일을 임시 DB에 복사 및 압축해제

          

ex) tar -xvzf 파일명

 

2. 압축 해제한 mysql 서버 폴더에 install.sh 파일을 생성 및 아래내용 복사 (make 파일생성)

  

참고로 본 서버 참고하여 생성

useradd -M -s /sbin/nologin mysql

./configure \

--prefix=/usr/local/mysql \

--with-charset=euc_kr \

--without-innodb \

--with-unix-socket-path=/tmp/mysql.sock \

--without-comment \

--without-debug \

--with-mysqld-user=mysql \

--without-bench \

--without-docs \

--localstatedir=/usr/local/mysql/var  \

--sysconfdir=/etc \

--disable-shard \

--enable-assembler && make -j 6 && make install

 

echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf && ldconfig

cf) localstatedir 의 경우 기본적으로 설치되는 경로이기에, 경로가 변경된다면 해당 경로 수정

   혹여나 변경을 못했다면 my.cnf 에서 수정 가능


 

3. .bashsrc 수정

 

vi ~/.bashrc 한 후 아래 alias 추가

vi = '/usr/bin/vim'

. ~/.bashrc 또는 source ~/.bashrc 로 설정을 다시 로딩

 

4. .bash_profile 수정

 

/usr/local/mysql/bin path에 추가 (vi ~/.bash_profile)

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin

 

-개인을 위해서 아래 추가

mysql_base=/usr/local/mysql/

mysql_home=$mysql_base/var/

. ~/.bash_profile 또는 source ~/.bash_profile 로 설정을 다시 로딩

 

5. install.sh 파일 실행

 

$root > sh install.sh

 

오류 발생 시 하단에 오류 발생 찾아서 확인

 

6. 설치가 완료 되면 my.cnf 생성

 

root$> vi /etc/my.cnf

[client]

#password       = your_password

port            = 3306

socket          = /tmp/mysql.sock

 

[mysqld]

port            = 3306

socket          = /tmp/mysql.sock

skip-locking

skip-innodb

 

set-variable    = key_buffer=512M

set-variable    = max_allowed_packet=16M

set-variable    = table_cache=512

set-variable    = sort_buffer=4M

set-variable    = record_buffer=2M

set-variable    = thread_cache=512

set-variable    = thread_concurrency=16

set-variable    = myisam_sort_buffer_size=64M

set-variable    = max_connections=300

set-variable    = max_heap_table_size = 2000M

set-variable    = tmp_table_size=1000M

set-variable    = max_tmp_tables=256

set-variable    = max_binlog_size =300M

set-variable    = long_query_time = 1

 

server-id       = 1

log-bin=/db_log/LOG

binlog-do-db=DARKEDEN

log-slow-queries= /db_log/slow-query.log

 

log=/backup/ALOG/mysql.log

 

[mysqldump]

quick

set-variable    = max_allowed_packet=16M

 

[mysql]

no-auto-rehash

 

[isamchk]

set-variable    = key_buffer=256M

set-variable    = sort_buffer=256M

set-variable    = read_buffer=2M

set-variable    = write_buffer=2M

 

[myisamchk]

set-variable    = key_buffer=256M

set-variable    = sort_buffer=256M

set-variable    = read_buffer=2M

set-variable    = write_buffer=2M

 

[mysqlhotcopy]

interactive-timeout

Port 는 기본 포트 3306

 

Log-bin log-slow-queries , log 등의 해당 Directory가 없을 경우 생성해 줘야 함.

 

[root@localhost /]# mkdir /db_log

[root@localhost /]# chown -R mysql:mysql /db_log

 

[root@localhost /]# mkdir -p /backup/ALOG

[root@localhost /]# chown -R mysql:mysql /backup

 

datadir 의 경우 해당 데이터가 쌓이는 장소이므로 없으면 default에 쌓이지만 변경이 원하고자 한다면 datadir 항목을 추가 (ef- datadir=/my_data1/datfile/ )

 

이 모든 항목들은 mysqld를 중지한 후 진행해야 함

 

 

 

7. Python 설치 (MySQL 에서 사용하기 위한 라이브러리 설치

   - README 보면서 진행)

 

  $ tar xfz MySQL-python-1.2.1.tar.gz

  $ cd MySQL-python-1.2.1

  $ chmod 700 setup.py   --권한이 없을 경우 권한 부여

  $ # edit site.cfg if necessary

  $ python setup.py build

  $ sudo python setup.py install # or su first

 

확인방법

  - Python 접속

  $phthon

  $ import MySQLdb  후 에러가 발생 안되면 완료

 

8. DB 설치

 

필히 설치할 필요 없으나, 아래 폴더에서 설치가 가능

$ cd /usr/local/bin

$ ./mysql_install_db

/usr/local/mysql/var 에 설치가 되었는지 확인이 가능

 

9. 해당 데이터 및 권한 가져오기

 

- 데이터는 일간 백업에서 가져오면 가능(FTP 서버 내 Daily_BK) -> 데이터

 - $ tar -cvzf mysql_back1.tgz /usr/local/mysql/var/mysql  -> 권한

   해당 압축 파일을 FTP서버로 전송 후 다시 임시 DB로 전송

 

10. 임시 DB에서 권한 및 데이터 복구

 

- 권한의 경우 기존 mysql 해 놓은곳에 덮어 쓸것 (기존은 백업)

- 일간 백업한 것은 DARKEDEN 에 생성 (권한 확인 / 소유자 확인)

- 각각의 폴더의 유저 소유 권한을 확인(/usr/local/mysql/var 의 경우 아래로 mysql으로 해야함)

 

11. MySQL open

 - $>safe_mysqld&  로 실행 후 $>ps -ef | grep mysql 확인


 



오류 발생 시

1. sh install.sh 를 돌렸는데 발생하는 오류

...

checking for atomic operations... no

checking for int8... no

checking "LinuxThreads"... "Not found"

configure: error: This is a linux system and Linuxthreads was not

found. On linux Linuxthreads should be used.  Please install Linuxthreads

(or a new glibc) and try again.  See the Installation chapter in the

Reference Manual for more information.

해결방법

mysql 설치중 아래와 같은 error 메세지 발생시에는 간단히 아래 방법대로 진행

 

checking "LinuxThreads"... "Not found"

configure: error: This is a linux system and Linuxthreads was not

found. On linux Linuxthreads should be used.  Please install Linuxthreads

(or a new glibc) and try again.  See the Installation chapter in the

Reference Manual for more information.

 

방법:

/usr/include/pthread.h 화일을 열어 맨위 부분쯤에 아래 내용을 추가 하고 저장

 

/* Linuxthreads */

 

mysql configure 과정에서 pthread.h 파일을 찾아 위 내용이 있는지 확인하는 것으로

glibc에서 없는 경우 에러 메세지가 발생


참고 : http://faq.hostway.co.kr/Linux_DB/1303

 

반응형

+ Recent posts