출처: <http://discafe.tistory.com/entry/mysql-%ED%95%9C%EA%B8%80-%EC%84%A4%EC%A0%95utf8>
위 글을 보고 아래와 같이 설정함.
C:\Program Files\MySQL\MySQL Server 5.6
#아래는 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 를 다시 시작함.)
show variables like ‘c%’;
위 구문으로 character set이 대부분 utf8로 변경된 것을 볼 수 있다.
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;
UTF-8을 사용하는 JAVA Swing 프로젝트에서 해당 테이블에 데이터를 넣음. 깨지지 않고 잘 들어간다.
Console에서는 깨져 보이지만, 큰 문제는 없을 듯.
–팁–
기존 테이블 정보를 UTF-8로 변경하기
show create table employee;
위 명령으로 내가 만든 테이블의 정보 확인 가능.
ALTER TABLE employee DEFAULT CHARSET=utf8;
위 명령으로 디폴트 캐릭터셋 변경.
테이블 정보가 바뀐 것을 확인.
여전히 오류난다.
테이블 전체 뿐 아니라 내부도 바꿔야 하는 듯.
ALTER TABLE employee MODIFY COLUMN name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci;
http://notcracker.tistory.com/49 를 참고해서 변경해봄.
한글 데이터가 잘 들어간다.(하지만, 설정하지 않은 칼럼은 모두 오류남… 애초에 테이블을 새로 만들어야 할 듯.)
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;
역시 위 구문이 정답이었어…
으흠!
결론
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;
일본어도 잘 들어감..