한글 출력이 되도록 UTF8 세팅 작업을 하였다. 중간에 기존에 데이터가 들어가 있는 테이블의 레코드를 삭제하다가 다음과 같은 오류를 만났다.
ERROR 내용: Cannot delete or update a parent row: a foreign key constraint fails
이것은 현재 지우려고 하는 테이블의 레코드가 키 역할을 하기 때문이라서 외래키 설정을 꺼주고
마저 작업을 한 후에 다시 외래키 설정을 켜줌으로써 해결하였다.
mysql> SET foreign_key_checks = 0;
mysql> ..... working ......
mysql> SET foreign_key_checks = 1;
[본론]
mysql에서 한글이 깨져 나올 때 character-set을 변경해주어야 한글이 나오게 할 수 있다.
크게 3단계를 수행한다.
1. my.cnf 수정 (사용하는 os나 version에 따라서 경로 다름)
2. mysql restart
3. 확인
1. my.cnf 수정 |
리눅스 우분투를 사용하는 제 경우에는 /etc/mysql/my.cnf 에 있었다.
mysql 이 설치된 환경에 따라 위치는 다를 수 있지만, 찾아서 my.cnf 에 내용을 추가해 준다.
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
init_connect=SET collation_connection=utf8_general_ci
init_connect=SET NAMES utf8
[mysql]
default-character-set=utf8
2. mysql 재시작 |
sudo /etc/init.d/mysql restart
sudo service mysql restart
등의 명령으로 mysql 재시작
3. 확인 |
mysql 에 접속해 status 명령으로 character set을 확인
mysql> status
[참고사항]
mysql 재시작
1. sudo /etc/init.d/mysql restart
2. sudo service mysql restart (/etc/init.d/mysql의 경로는 다를 수 있습니다.)
3.vim 한글 설정 (인코딩이 아니라 '한글'이 보이게 함)
~/.vimrc 에서 set fileencodings=utf-8,euc-kr
4.mysql에서 인코딩내용을 확인하기 위해 다음의 명령어를 사용한다.
show variables like 'c%'; 혹은 status
5.SHOW
FULL
COLUMNS
FROM
mytable;
6.
SHOW
CREATE
DATABASE
mydb;
7.
show create table mytable;
'아카이브 > MySQL' 카테고리의 다른 글
자주 참고하는(깜박하는) 쿼리문들 (0) | 2015.02.13 |
---|---|
[Trigger] 외부 프로그램을 호출하기 위해 시도한 트리거기능 (0) | 2015.02.01 |
[mysql] 백업/복구 (0) | 2015.01.22 |
[mysql] primary key, foreign key 생성/수정 (0) | 2015.01.22 |
[MySQL] (0) | 2015.01.12 |