Database/MySQL2010. 12. 5. 15:29

Redmine 설치하여 한글을 입력해보니 한글이 깨져서 나왔다.

이럴때 MySQL을 UTF8로 설정해주면 문제를 해결할 수 있다.

=========================================================

가장 먼저 MySQL에 들어가서 현재 Redmine에서 사용하는 데이터베이스의 문자셋을 확인한다.


mysql> use redmine;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show variables like 'c%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
| collation_connection     | latin1_swedish_ci          |
| collation_database       | latin1_swedish_ci          |
| collation_server         | latin1_swedish_ci          |
| completion_type          | 0                          |
| concurrent_insert        | 1                          |
| connect_timeout          | 10                         |
+--------------------------+----------------------------+
14 rows in set (0.00 sec)

mysql>


데이터베이스의 문자셋이 latin1으로 되어 있는데 이것을 UTF8로 바꿔주도록 하자.

mysql 설정 파일인 /etc/mysql/mysql.cnf 파일의 마지막에 아래 내용을 추가해 준다.


[client]
default-character-set=utf8
 
[mysqld]
init_connect=SET collation_connection = utf8_general_ci
init_connect=SET NAMES utf8
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
 
[mysql]
default-character-set=utf8


그리고는 Redmine에서 사용하는 데이터베이스를 삭제하였다가 다시 생성해준다.


mysql> drop database redmine;
mysql> create database redmine default character set utf8 collate utf8_general_ci;


Redmine이 설치된 폴더로 이동하여 DB 초기화 작업을 해준다.


# rake db:migrate RAILS_ENV="production"


이제 다시 MySQL에 들어가서 생성된 데이터베이스의 설정 속성을 확인해보자.


mysql> use redmine;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Dtabase changed
mysql> show variables like 'c%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
| collation_connection     | utf8_general_ci            |
| collation_database       | utf8_general_ci            |
| collation_server         | latin1_swedish_ci          |
| completion_type          | 0                          |
| concurrent_insert        | 1                          |
| connect_timeout          | 10                         |
+--------------------------+----------------------------+
14 rows in set (0.00 sec)

mysql>


데이터베이스의 문자셋은 utf8로 변경되었다.

Redmine 페이지를 열고 한글 입력을 해보면 한글이 깨지지 않고 잘 뜨는 것을 확인할 수 있을 것이다.
Posted by Huikyun