티스토리 뷰
cnetos를 사용중인데 사이트를 배포하고 접속해서 로그인을 해보니 처음엔 글자가 깨지더니 두번째로
한글을 인서트하니 데이터베이스 에러를 내뿜었다.
show create table 테이블이름;
테이블의 정보를 보는 것으로 결과의 마지막에 charset이 라틴어로 되어있어서 한글을 처리하지 못한 것이다.
테이블을 생성할 때 디폴트 캐릭터셋을 설정하기 위해서는 다음 경로의 파일을 수정한다.
# vi /etc/my.cnf
파일을 열었으면 아래와 같이 수정한다.
[client]
default-character-set = utf8
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
default_storage_engine=INNODB
#디폴트 엔진을 이노디비로...
skip-character-set-client-handshake
default-character-set = utf8
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
수정했으면 mysql프로세스를 재시작한다.
# service mysqld restart
아래의 명령어로 mysql의 설정값을 보며 변경됐는지 확인해본다.
mysql> show variables like 'c%';
그리고 db 툴을 사용하고 있다면 현재 커넥션을 종료하고 다시 커넥션을 해줘야 테이블 생성시 변경된 설정대로 적용된다.
'DB > 정리' 카테고리의 다른 글
VIEW(뷰) (0) | 2022.10.24 |
---|---|
[MYSQL] 데이터타입 (0) | 2022.10.24 |
[MySQL] 저장 프로시저 (Stored Procedure) (0) | 2016.02.21 |
[MySQL] ALTER TABLE (0) | 2015.09.11 |
[MySQL] 우편번호 밀어넣기 (toad for mysql사용) (0) | 2014.05.29 |