본문 바로가기
📌 DataBase/└ MariaDB

[MariaDB] 한글 인코딩 에러 SQL Error [1366][22007] (conn=5) Incorrect string value 에러 발생 시 해결 방법

by 쫄리_ 2024. 5. 3.
728x90
반응형

🎯 Goal

  • MariaDB 인코딩 설정을 utf8로 변경하는 방법을 안다.

⚠️ 문제 현상

데이터베이스 데이터 추가하는데 아래와 같은 에러가 발생 했다.

MariaDB [iterview]> insert into customer(cust_name) values('권소현');
ERROR 1366 (22007): Incorrect string value: '\xC7\xC1\xB7\xD0\xC6\xAE...' for column `iterview`.`tag`.`name` at row 1
ERROR 1366 (22007): Incorrect string value: '\xC7\xC1\xB7\xD0\xC6\xAE...' for column `iterview`.`tag`.`name` at row 1 SQL Error [1366] [22007]: (conn=5) Incorrect string value:

🔑 에러 원인

mariaDB에서는 charset이 default로 설정되어 있어 한글을 추가할려고 한 순간

한글 인코딩 에러가 난 것이다.


💊 해결 방법

MariaDB 인코딩 설정utf8로 변경해야 한다.

 USE 데이터베이스명;
 ALTER DATABASE 데이터베이스명 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
 
 ALTER TABLE CUSTOMER MODIFY COLUMN 컬럼명 타입 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

사용예시

 

데이터베이스 생성

-- 데이터베이스 생성 (CREATE)
create database lds;

-- 데이터베이스 선택 (USE)
use lds;

-- 데이터베이스 확인
show databases;

 

테이블 생성

/* [테이블 생성]
 * 문의 - 문의 정보
 */
CREATE TABLE CUSTOMER(  
 cust_idx INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -- 자동증가옵션
 cust_date DATE NOT NULL,  -- null 비허용
 cust_name VARCHAR(100),  
 cust_email VARCHAR(100), 
 cust_hp VARCHAR(13),
 cust_question TEXT
);

 

인코딩 설정

⭐ 인서트를 하기 전에 인코딩 설정을 한다!

-- 인코딩 설정
USE lds;

ALTER DATABASE lds CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

ALTER TABLE CUSTOMER MODIFY COLUMN cust_name VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE CUSTOMER MODIFY COLUMN cust_email VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE CUSTOMER MODIFY COLUMN cust_hp VARCHAR(13) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE CUSTOMER MODIFY COLUMN cust_question TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 

데이터 인서트

INSERT INTO CUSTOMER (cust_date, cust_name, cust_email, cust_hp, cust_question) 
VALUES (NOW(), '권소현', 'shkwon.msd@naver.co.kr', '01012345678', '프로젝트 의뢰합니다.');

인코딩 하기 전에 데이터 인서트를 하면 파란박스처럼 오류가 난다.


📝 조치 결과

발생했던 오류가 해결된 모습을 확인할 수 있다.

 

 

728x90
반응형