서버/Linux

우분투에서 MariaDB 캐릭터셋을 UTF8 로 설정하기

날개 2013. 12. 24. 17:09

우분투에 MariaDB를 처음 설치하면 캐릭터셋이 기본적으로 Latin-1 으로 되어 있는것을 볼 수 있습니다. (요즘 시대가 어떤 시대인데 Latin-1을 디폴트로...)


한글을 사용하기 위해서는 인코딩을 euc-kr이나 UTF8로 바꾸는 것이 필요한데, 요즘은 대부분 UTF8을 사용하므로 UTF8로 설정해 봅니다.


MariaDB의 캐릭터셋을 UTF8로 설정하는 것은 MySQL과 유사합니다.


먼저, 현재 MariaDB의 캐릭터셋이 무엇으로 되어 있는지 확인부터 해보죠. (이미 UTF8로 되어 있다면 바꿀 이유가 없으니까요.)


먼저 터미널로 접속합니다. 그리고 MariaDB에 연결합니다.


$ sudo mysql -uroot -p                        <-- root는 MariaDB 유저명


비밀번호를 입력하고 접속 되면, MariaDB에 c로 시작하는 변수값이 어떻게 설정되었는지 확인합니다.


MariaDB [(none)]> show variables like 'c%';


제 경우 아래와 같이 나오네요.




utf8로 설정되어 있는 부분들도 있지만, latin1으로 설되어 있는 부분들도 보이는군요.


utf8로 바꾸어 봅시다.


(모두 utf8로 되어 있다면 바꿀 필요 없습니다.)


먼저 quit; 명령으로 MariaDB를 빠져 나옵니다.


MariaDB의 my.cnf 파일을 수정해야 하는데, 우분투의 경우, /etc/mysql/ 디렉터리 밑에 있습니다.


만약을 대비해 먼저 my.cnf 파일을 백업합니다.


$ sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.ori


이제 본인에게 편한 에디터로 my.cnf 파일을 수정합니다.


아래 내용이 my.cnf에 있는지 확인하고 없으면 추가하고, 있으면 수정합니다.


(각 섹션별로 추가나 수정을 해 줍니다.)


[client]

.

.

.

default-character-set=utf8

.

.

.

[mysqld]

.

.

.

init_connect="SET collation_connection=utf8_general_ci"

init_connect="SET NAMES utf8"

character-set-server=utf8

collation-server=utf8_general_ci


skip-character-set-client-handshake

.

.

.

[mysql]

.

.

.

default-character-set=utf8

.

.

.


수정을 마쳤으면, MariaDB를 재시작합니다.


$ sudo service mysql restart


다시한번 MariaDB에 접속해서, 아래 명령어로 캐릭터셋이 바뀌었는지 확인합니다.


MariaDB [(none)]> show variables like 'c%';


이제 아래와 같이 나오네요.




정상적으로 utf8로 바뀐것을 확인 할 수 있습니다.




끝.