MySQL 의 default character set 은 MySQL 의 설정 파일에 설정할 수 있다.
배포판 | 위치 |
RHEL/CentOS | /etc/my.cnf |
Ubuntu | /etc/mysql/mysql.conf.d/mysqld.cnf |
명시적으로 설정하지 않으면 기본 캐릭터 셋은 latin1 이 된다. 현재 characterset 확인은 다음과 같이 mysql 클라이언트로 연결한 후에 status 명령어로 알수 있다.
또는 다음과 같이 mysql 콘솔에서 show variable 을 사용해도 된다.
redmine, gitlab 등 거의 모든 app 들은 charset 으로 UTF-8 을 권장하고 있고 실제로도 UTF-8 을 사용하는게 정신건강에 좋다.
MySQL 5.1 과 5.5 이상은 my.cnf 에 캐릭터 셋 설정하는 방식이 약간 다르다.
설정
MySQL 5.5 이상
MySQL 5.5 부터는 default-character-set 옵션이 제거되었고 character-set-server 만 설정해 주면 된다.
skip-character-set-client-handshake 가 빠지면 client 의 시스템 encoding 을 사용하는데 윈도의 경우 euckr 로 설정 될수 있으므로 필요하다.
이제 service mysqld restart 로 재구동후에 mysql client 에서 status 명령어로 보면 charset 이 utf-8 로 변경되었을 것이다.
MySQL 5.1
5.1 은 다음과 같이 설정해야 한다.
UTF8-MB
Emoji 는 기존 utf-8 로는 표현을 못하므로 MySQL에서 이모지를 저장하려면 4바이트의 가변 길이를 갖는 utf8mb4 캐릭터 셋을 사용해야 한다. (MySQL 5.5.3 이상 필요)
이미 기존에 만들어진 database 라면 alter database 명령어로 캐릭터 셋과 collate 를 변경할 수 있다.
캐릭터 셋 변경 후에는 MySQL 서비스를 재시작해야 한다. 아래의 MySQL 재시작 명령어를 참조하여 수행한다.
MySQL 서비스 재시작
작업 | 우분투 명령어 | CentOS6 명령어 | CentOS7 명령어 |
시작 | |||
정지 | |||
재시작 | |||
상태확인 |
- → service mysql 대신 /etc/init.d/mysql,
- → service mysqld 대신 /etc/init.d/mysqld를 써도 됨
반응형
'IT > 데이타베이스' 카테고리의 다른 글
[MySQL] database 와 table 의 크기 조회 (0) | 2018.05.18 |
---|---|
[오라클] 오라클 DB 용량 계산 (0) | 2018.05.18 |
[오라클] SHA256 함수 및 자바 모듈 적재 (1) | 2018.05.18 |
[오라클] Simple Name 마스킹 함수 (0) | 2018.05.18 |