MySQL: UTF-8 설정(한글깨짐해결)

출처: <http://discafe.tistory.com/entry/mysql-%ED%95%9C%EA%B8%80-%EC%84%A4%EC%A0%95utf8>

글을 보고 아래와 같이 설정함.

clip_image0014

C:\Program Files\MySQL\MySQL Server 5.6

clip_image0024

#아래는 2016-07-24 추가한 내용

character-set-client-handshake = FALSE
init_connect=”SET collation_connection = utf8_general_ci”

init_connect=”SET NAMES utf8″

character-set-server = utf8

[client]

default-character-set = utf8

[mysql]

default-character-set = utf8

[mysqldump]

default-character-set = utf8

(그리고 mysqld 다시 시작함.)

clip_image0034

show variables like ‘c%’;

구문으로 character set 대부분 utf8 변경된 것을 있다.

clip_image0044

employee 테이블을 utf-8 character set으로 새로 만듦.

CREATE TABLE employee (
no int(11) NOT NULL AUTO_INCREMENT,
name varchar(20) NOT NULL,
jobGrade varchar(10) NOT NULL,
department int(11) NOT NULL,
email varchar(30) DEFAULT NULL,
status varchar(10) DEFAULT NULL,
PRIMARY KEY (no)
) DEFAULT CHARSET=utf8 COLLATE utf8_general_ci;

clip_image0054

UTF-8 사용하는 JAVA Swing 프로젝트에서 해당 테이블에 데이터를 넣음. 깨지지 않고 들어간다.

clip_image0064

Console에서는 깨져 보이지만, 문제는 없을 .

기존 테이블 정보를 UTF-8 변경하기

clip_image0084

show create table employee;

명령으로 내가 만든 테이블의 정보 확인 가능.

clip_image0094

ALTER TABLE employee DEFAULT CHARSET=utf8;

명령으로 디폴트 캐릭터셋 변경.

clip_image0104

테이블 정보가 바뀐 것을 확인.

clip_image0114

여전히 오류난다.

clip_image0124

테이블 전체 아니라 내부도 바꿔야 하는 .

clip_image0134

ALTER TABLE employee MODIFY COLUMN name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci;

http://notcracker.tistory.com/49 참고해서 변경해봄.

clip_image0144

한글 데이터가 들어간다.(하지만, 설정하지 않은 칼럼은 모두 오류남애초에 테이블을 새로 만들어야 .)

CREATE TABLE employee (

no int(11) NOT NULL AUTO_INCREMENT,

name varchar(20) NOT NULL,

jobGrade varchar(10) NOT NULL,

department int(11) NOT NULL,

email varchar(30) DEFAULT NULL,

status varchar(10) DEFAULT NULL,

PRIMARY KEY (no)

) DEFAULT CHARSET=utf8 COLLATE utf8_general_ci;

역시 구문이 정답이었어

clip_image0154

으흠!

결론

UTF-8 로 되어 있는 기본 JAVA (Eclipse) 설정은 변경할 것이 없음.

다만 데이터베이스에 최초로 테이블을 만들 때

CREATE DATABASE 구문의 끝에 DEFAULT CHARSET=utf8 COLLATE utf8_general_ci; 을 넣으면 됨.

예를 들어서

CREATE TABLE employee (

no int(11) NOT NULL AUTO_INCREMENT,

name varchar(20) NOT NULL,

jobGrade varchar(10) NOT NULL,

department int(11) NOT NULL,

email varchar(30) DEFAULT NULL,

status varchar(10) DEFAULT NULL,

PRIMARY KEY (no)

) DEFAULT CHARSET=utf8 COLLATE utf8_general_ci;

CREATE DATABASE ( 내용 ) DEFAULT CHARSET=utf8 COLLATE utf8_general_ci;

clip_image0164

일본어도 들어감..

이것도 살펴보세요!

WSL 개발 환경 설정

WSL로 개발 환경 설정하는 법 https://learn.microsoft.com/ko-kr/windows/wsl/setup/environment 1. 아래 명령으로 WSL을 설치하고, 리눅스 사용자 이름과 암호 …

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다