본문 바로가기

아카이브/MySQL

[Mysql] 데이터베이스 한글 설정

반응형

한글 출력이 되도록 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;

반응형