heidiSQL을 이용해 테이블을 생성했다.
테이블 생성시 문자세트(Character Set) 설정을 변경하는 법을 익혔다.
기본 문자세트인 latin1문자세트는 영어를 주 언어로 사용하는 영어권 국가들이 사용한다.
이 경우엔 인코딩 및 디코딩 결과에 문제를 일으키지 않지만 한국을 비롯한 아시아 같은 국가들의 언어는 문자가 깨져서 입력되거나 출력시 깨져 보이는 결과가 일어날 수 있다.
문자세트는 데이터베이스 생성 단계에서 특정해야 이후 문제가 발생하지 않는다. UTF 8로 인코딩된 유니코드 문자세트로 DB를 생성하는 명령어는 아래와 같다.
heidiSQL에서 DB를 생성할 땐 다음과 같다.
MySQL 콘솔에서 이미 생성된 DB의 문자세트를 확인하는 방법은 다음과 같다.
$ mysql -u root -p
mysql > show database;
mysql > use omeka;
mysql > show variables like ‘character_set%’;
# mysqld.cnf 경로 : /etc/mysql/mysql.conf.d/mysqld.cnf
환경설정파일의 수정 방법은 다음과 같습니다.
$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld_safe]
default-character-set=utf8 <<<
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
character-set-server=utf8 <<<
collation-server=utf8_unicode_ci <<<
init_connect = set collation_connection = utf8_unicode_ci <<<
init_connect = set names utf8
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
이하 생략…
#
[client]
default-character-set=utf8 <<<
[mysqldump]
default-character-set=utf8 <<<
$ sudo service mysql restart