프로그래밍/Mysql

MYSQL - MYSQL 한글 깨짐 현상 해결책

가카리 2015. 1. 10. 15:06
반응형

APMSETUP7 ‘MYSQL’에서 한글깨짐을 처리하기 위한 캐릭터셋 설정


ALTER TABLE 테이블_이름 CHARACTER SET utf8 COLLATE utf8_general_ci; //TABLE


(혹은 DB를 만들면서 지정)


CREATE DATABASE 데이타베이스_이름 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;




 나의 SQL 캐릭터셋 리스트 보기


윈도우키 + R 을 누른뒤 >cmd 를 입력하여 도스 커맨드 창을 뛰운다.


기본 비번은 root / apmsetup 이니 알아두도록 하고 다음과 같이 mysql에 접속한다.


C:\> mysql -uroot -papmsetup


mysql> show variables like 'c%'; 를 입력하면 현재 적용되어있는 캐릭터셋이 아래와 같이 리스트로 뜬다.



살펴보면 캐릭터셋의 설정이 모두 latin1 로 되어있다.


문제점1) phpAdmin같은 편리한 관리 도구로 테이블에 입력된 값을 살펴 볼 경우 한글이 죄다 ????으로 떠서 확인이 불가.


문제점2) 게다가 php로 select로 결과값을 받을때에도 @mysql_query('set names utf8')', 일일이 iconv() 메서드로 계속 인코딩을


 관리해서 입/출력 해야한다.


문제점3) 위에 설명했듯이 ALTER로 속성을 바꿀수는 있지만... 이미 캐릭터가 입력되어서 서로 다른 타입이 테이블에 혼재할경우


 이래저래 엄청 일이 꼬이게 된다.



 my.ini 파일 수정


1. C:\APM_Setup\Server\MySQL5\data 에서 my.ini 파일을 편집기로 오픈한다.


이렇게 생긴 파일 맞다)



2. 정확히 "[항목의]" 다음의 문자열을 추가한다.


[client]

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



3. 저장이 되었으면 현재 my.ini파일을 복사하여 APM_setup\Server\MYSQL5에 붙여넣기 한다.


그러면 


C:\APM_setup\Server\MYSQL5\data 폴더에 my.ini 한개 존재


C:\APM_setup\Server\MYSQL5 폴더에 my.ini 한개 존재


이렇게 총 두개의 my.ini가 존재 할 것이다.


data 하위에 my.ini가 없으면 APMSETUP모니터가 작동하지 않기때문에 이렇게 조치 하는것이다.




4. 수정이 끝났으면 mysql을 재시작 해야 하는데


ㄱ. APM프로그램에서 stop을 누른뒤 다시 Start를 누르거나 (추천)


ㄴ. mysql> quit;


 c:\>mysqladmin -uroot -papmsetup reload 라는 커맨드로 입력해도 된다.





 캐릭터셋 변경 확인


수정이 잘 되었는지 반드시 확인해야 한다.


C:\> mysql -uroot -papmsetup mysql에로그인한 뒤


mysql> show variables like 'c%'; 명령어를 치면 아래와 같이 전부 utf8로 잘 변경되어져있다.





 이후 데이터 값의 확인은 phpMyAdmin 에서


http://localhost/myadmin/index.php 에 접속하면 아래 처럼 SQL 관리 도구가 뜬다.


역시 비번과 이이디는 root / apmsetup 으로 동일하다.


앞으로의 데이터베이스 열람은 cmd에서 명령기반의 모니터링이 아니라 phpMyAdmin으로 확인하는것이 정신에 매우 이로울것이다.




ps. 캐릭터셋 때문에 하도 고생을 해서 10번 이상의 임상실험을 통해 계속해서 반복적으로 성공한 구성을 튜토리얼로 기록 남겨둔다.

 2~3시간 삽질한 것 같은데 "euc-kr / utf-8" 도 아니고 하필 latin1 이라니... 이래저래 다른 유저들도 참 많이 고생할듯.

출처 : http://serpiko.tistory.com/442

반응형