티스토리 뷰

Programing/Database

MySQL 한글 깨짐 해결

alcmskfl17 2020. 8. 5. 03:10

SQL 오류 (1366)

INSERT INTO 로 한글을 넣으려고 했으나, SQL 오류(1366) 에러가 발생했다.

이유는 Nickname 컬럼에 잘못된 문자열이 들어갔다며 한글을 인식하지 못 했기 때문이다.

 

 

해결 방법

1. 데이터베이스의 CHARACTER , COLLATE 설정을 uft8로 변경

1-1. 데이터베이스 생성시 설정하기

 

CREATE DATABASE 데이타베이스명 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

 

1-2 이미 생성된 데이터베이스에 설정하기

 

ALTER DATABASE 데이터베이스명 CHARACTER SET utf8 COLLATE utf8_general_ci;

 

이미 생성되어 있는 테이블에는 적용되지 않는다.

즉, 해당 쿼리를 실행 후에 생성된 테이블에 적용이 된다.

 


2. 테이블의 CHARACTER , COLLATE 설정을 uft8로 변경

테이블 같은 경우는 해당하는 테이블만 적용된다는 것을 명심하자.

즉, 모든 테이블에 적용하고 싶을 경우, 모든 테이블에 적용시켜야 한다.

2-1. 테이블 생성시 설정하기

CREATE table 테이블명(
	ID VARCHAR(32) PRIMARY KEY,
	PW VARCHAR(32) NOT null
)DEFAULT CHARACTER SET utf8 COLLATE UTF8_GENERAL_CI;

방신은 데이터베이스와 똑같다. 뒤에 DEFAULT CHARACTER SET utf8 COLLATE UTF8_GENERAL_CI; 를 붙여주면 된다.

2-2. 이미 생성된 테이블에 설정하기

ALTER TABLE test04 CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI;

이미 생성된 테이블에도 설정이 가능하다.


3. GUI 로 설정하기

​MySQL 접속 툴은 Heide SQL을 사용했다.

 

3-1. 데이터베이스 설정 변경

좌측에서 변경하고자 하는 데이터베이스 우클릭 후, 편집(k) 클릭

조합을 utf8_general_ci 로 변경 후 확인

 

테이블 편집에서 기본 조합을 utf8_general_ci 으로 변경 -> 데이터 저장 체크 -> 저장

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함