본문 바로가기

Linux/CentOS

[ CentOS ] mysql encoding (인코딩) 한글깨짐 문제해결

반응형

안녕하세요

코띵이입니다 :)

 

mysql 사용 시

인코딩이 제대로 안 되어

한글이 깨지는 문제가

발생했을 때

해결방법을 알려드리겠습니다.

 

 

먼저 인코딩 설정을 확인합니다.

 

mysql> show variables like 'c%';

 

 

한글을 제대로 인식하기 위해서는

utf8로 설정되어야 하는데

다음과 같이 다르게 되어있는 것을

확인할 수 있습니다.

 

이를 변경하기 위해서는

설정파일을 변경해야합니다.

 

$> vi /etc/my.cnf

 

 

client, mysqld, mysql

설정을 해줍니다.

 

여기서 주의할 점은

mysql 5.4버전 이하일 경우에만

저렇게 설정해줬을 때

정상적으로 동작합니다.

 

하지만 mysql 5.5버전 이상일 경우

 mysql 서비스가 실행되지 않습니다.

 

character-set-server 와

collation_server는

제거합니다.

 

그 후에, mysql을 재실행해봅니다.

 

$> service mysqld restart

 

다시 인코딩 상태를 확인해봅니다.

 

 

3번째 character_set_database와

11번째 collation_database가

변경되지 않은 것이 보입니다.

 

그렇다면 어떻게 변경해야할까요?

데이터베이스에 따로 

설정해주는 것입니다.

 

mysql 데이터베이스를 변경해주면

이후 생기는 데이터베이스에는

자동으로 적용됩니다.

 

> alter database mysql character set = utf8 collate = utf8_general_ci;

 

mysql을 재실행 하면

정상적으로 변경된 것을

확인할 수 있습니다.

 

 

또한 테이블에도 설정이 따로 필요합니다.

user 테이블이 있다고 했을 때

다음과 같이 설정해줍니다.

 

> alter table user convert to character set utf8;

 

이상입니다.

반응형