티스토리 뷰

반응형

(2006/02/07 13:31 작성)


MySQL 4.1.12 상에서 EUC-KR과 UTF-8을 동시에 써야하는 문제가 발생했다.

기존 버전은 EUC-KR기반이었고.. 신 버전은 다국어지원 문제로 UTF-8을 사용하였기에

업그레이드를 위해 기존 버전과 신버전이 동시에 공존하여야 하는 문제가 발생한 것..

 

DB나 Table이야 각각의 charset에 맞게 설정하면 그만이지만..

Connection은 일단 UTF-8이나 EUC-KR 둘 중에 하나를 선택하여야 한다.

 

 

 

1. 일단, 기존버전을 유지한 상태에서 DB를 copy떠서 charset만 변경시켰다.

  원본DB: db_1 → 사본DB: db_2

 

2. 그리고.. 신버전의 UTF-8의 사용을 위해 DB연결을 시도하였더니 다음과 같은 에러 발견.

 

  Illegal mix of collations (euckr_korean_ci, IMPLICIT) and

  (latin1_swedish_ci, COERCIBLE) ...

 

3. 따라서 Connection을 일치 시켜야만 했다.

그런이유로.. 다음과 같은 파일을 작성하여 include하였다.

 

      <?
      /*
       * PHP Example
       * Language Set
       */
      $query = 'set session character_set_connection=utf8;';
      mysql_query($query) or die("[#".__LINE__."]".mysql_error());
      $query = 'set session character_set_client=utf8;';
      mysql_query($query) or die("[#".__LINE__."]".mysql_error());
      $query = 'set session character_set_results=utf8;';
      mysql_query($query) or die("[#".__LINE__."]".mysql_error());
      $query = 'set collation_connection=utf8_unicode_ci;';
      mysql_query($query) or die("[#".__LINE__."]".mysql_error());
      ?>

 

4. 이후 작성되는 모든 mysql관련 명령어는 UTF-8 의 적용을 받는다.

반응형
반응형
최근에 달린 댓글