MYSQL

MYSQL 한글 깨짐 현상 [영문 운영체제에서 발생됨]

gold99 2018. 12. 8. 21:20

 

 - 2005. 9. 7. 22:41 -
 
 

#mysql mysql -e 'show variables like "%character%";show variables like "%collation%";'
 
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 /usr/share/mysql/charsets/ 
Variable_name Value 
collation_connection euckr_korean_ci 
collation_database euckr_korean_ci 
collation_server euckr_korean_ci

(정상)

mysql >show variables like "%character%";show variables like "%collation%";
확인

(비정상)


set session character_set_connection=euckr;
set session character_set_results=euckr;
set session character_set_client=euckr;

 

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;");

 

-----------------------------------------------------------------------
mysql 4.1의 경우에는 접속 시 'client characterset'이 기본적으로 'latin1'이 되어 버린다.

이 경우 'server characterset', 'database characterset'이 모두 'euckr'로 설정이 되어 있다하더라도 한글 깨짐 현상이 나타나게 된다.

 

이러한 문제를 해결하기 위해서 'client characterset'을 변경해야 하는데, 방법은 mysql 접속 후

'set names euckr'

을 실행하게 되면, 'client characterset'이 'euckr'로 변경이 되면서, 한글깨짐 문제가 해결된다.

물론 그 전에 'server characterset', 'database characterset'은 모두 'euckr'로 되어 있어야 한다.

 

[현재 characterset 설정 확인]

mysql> show variables like 'char%';

 

[client characterset 변경]

mysql> set names [변경하고자 하는 characterset 명칭];

 

[database characterset 변경]

mysql> alter database [DB명칭] character set [변경하고자 하는 characterset 명칭];

 

'MYSQL' 카테고리의 다른 글

MySQL 접속에러  (0) 2018.12.08
간단한 mysql 접근 방법  (0) 2018.12.08