강의를 따라서 실습을 진행하고 있는데 갑자기 뜬 오류.
오라클을 배울 때는 전혀 본 적 없던 오류라 당황했다.
찾아보니 내가 한글을 insert 하려고 했는데 그래서 뜬 오류라고 한다.
캐릭터셋을 UTF-8로 바꾸면 되는 것 같다.
1.
MariaDB 자체 설정 변경
참고1) 한글깨짐 문제... - 인프런 | 질문 & 답변 (inflearn.com)
한글깨짐 문제... - 인프런 | 질문 & 답변
안녕하세요! 박매일 선생님!맥에서는 선생님과 똑같이 설정하면 특수문자로 깨지던 한글이[사진]이런식으로 깨집니다 중간에 한글은 디비버에서 직접 바꾼겁니다. 저번처럼 ALTER TABLE test.myboard
www.inflearn.com
참고2) MYSQL, character set 변경 방법 (데이터베이스, 테이블) (tistory.com)
MYSQL, character set 변경 방법 (데이터베이스, 테이블)
데이터베이스는 문자열 데이터를 저장할 때 캐릭터셋(character set)을 이용합니다. 어떤 캐릭터셋으로 인코딩 된 것인지에 따라 글자가 정상적으로 보이거나 깨져서 보이기도 합니다. character set
change-words.tistory.com
my.ini(윈도우 기준. 리눅스는 my.cnf) 파일을 열어서 다음 내용 추가 후 서버 재시작
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
init_connect=SET collation_connection=utf8_general_ci
init_connect=SET NAMES utf8
[client]
default-character-set=utf8
[mysql] default-character-set=utf8

저 빨간 부분이 원래 latin1 이였는데 utf8로 바뀌었다.

나는 이걸로 해결!!
2. 데이터베이스 & 테이블 생성 시 설정 혹은 변경
이미 생성한 경우 기본 캐릭터셋을 바꿔도 따로 변경해야 한다.
데이터베이스와 테이블의 인코딩 설정을 변경해서 생성하거나 기존에 생성된 것을 변경하는 방법
create table member (
id varchar(20),
name varchar(20),
password varchar(20),
old_year int,
birth_date date,
sms_send_yn bit,
reigster_date datetime
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 이런 식으로 뒤에 인코딩 설정을 붙인다.
-- 데이터 베이스 설정 변경
ALTER DATABASE 데이터베이스명 DEFAULT CHARACTER SET UTF8;
-- 테이블 설정 변경
ALTER TABLE 테이블명 CONVERT TO CHARACTER SET UTF8;