ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [mysql] mysql 한글 깨짐 현상 ( UTF-8로 인코딩 변경)
    프로그래밍/Etc 2014. 8. 24. 21:19
    반응형

     

    mysql db에서 SQL 질의 결과를 csv로 export해서 엑셀로 열어보자 한글이 깨지는 현상이 발생했다.

    사실 이 현상 자체는 csv의 인코딩을 엑셀이 제대로 인식을 못해서 벌어지는 문제로

    그 후 메모장으로 열어서 인코딩을 ANSI로 바꾸고 다시 엑셀로 열자 해결되었다.

     

    그러나 이 방법을 알기 이전에 이미 mysql 기본 인코딩을

    utf-8로 바꾸는 삽질(아니 뭐 딱히 삽질이 아닐지도;)을 했기 때문에 여기 정리해둔다.

     

    일단 현재 mysql 기본 인코딩을 확인해보았다.

     

    mysql> status
    --------------

    ...


    Server characterset:    latin1
    Db     characterset:    latin1
    Client characterset:    utf8
    Conn.  characterset:    utf8

     

    ...


     

    --------------

     

    Server와 DB 인코딩이 기본 Latin1으로 되어있다.

    이런 인코딩은 my.cnf 설정파일을 수정하면 된다.

     

    my.cnf 위치를 찾기 위해서 다음과 같은 명령어를 입력했다.

     

    # mysql --verbose --help | grep -A 1 'Default options'        Default options are read from the following files in the given order:
    /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf

     

    /etc/my.cnf  파일을 열어 utf8 인코딩 설정을 아래와 같이 추가 하였다.

     

    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    character-set-server=utf8
    collation-server=utf8_general_ci
    init_connect = set collation_connection = utf8_general_ci
    init_connect = set names utf8

     

    [mysql]
    default-character-set=utf8

     

    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    default-character-set=utf8

     

    [client]
    default-character-set=utf8

     

    [mysqldump]
    default-character-set=utf8

     

     

    그리고 mysqld를 재시작.

     

    #service mysqld restart
    mysqld 를 정지 중:                                         [  OK  ]
    mysqld (을)를 시작 중:                                    [  OK  ]

     

     

    이제 전체 인코딩이 utf8로 변경된 것을 확인할 수 있다.

     


    --------------
    mysql  Ver 14.14 Distrib 5.5.38, for Linux (x86_64) using readline 5.1

    ...

     

    Server characterset:    utf8
    Db     characterset:    utf8
    Client characterset:    utf8
    Conn.  characterset:    utf8

     

    ...

    --------------
     

     

     


    728x90
    반응형
Designed by Tistory.