본문 바로가기

- DB

[MySQL] Incorrect string value

반응형

이모지를 저장해야 할 일이 생겼는데...

현재 사용하고 있는 DB는 MySQL에 utf-8인코딩을 사용하고 있어 4byte를 지원하지 않았습니다.

 

1. 우선 컬럼의 character set과 collation을 변경하여 테스트했습니다.

결과는 실패 ㅠㅠ

 

 

2. 이번에는 스키마의 character set과 collation을 변경하여 테스트했습니다.

이번에도 실패...

아 그리고 'myTable'이 아니라 해당 스키마 입력해주시면 됩니다!

 

 

3. DB서버에 설정된 character set과 collation을 변경하여 테스트했습니다.

collation은 character set이 변경되면 해당 character의 기본 collation이 반영됩니다.

* SET명령어로 변경한 인코딩은 일시적이며, DB 서비스가 재기동되면 기존으로 돌아갑니다.

- 해당 DB의 character set

결국 다 실패하여...

/etc/my.cnf를 수정하여 해결했습니다.

 

 

4. my.cnf에 하기 내용 추가했습니다.

 

[mysqld]

character-set-server=utf8mb4

collation-server=utf8mb4_general_ci

 

5. 성공!!

 

6. 5번까지 변경했는데도 안될 경우

application에 jdbc url설정에 useUnicode=true 추가하여 시도해보시기 바랍니다!

 

 

참조 : https://stackoverflow.com/questions/10957238/incorrect-string-value-when-trying-to-insert-utf-8-into-mysql-via-jdbc

반응형

'- DB' 카테고리의 다른 글

[Oracle, MySQL, MSSQL] PROCEDURE  (0) 2020.07.14
[MySQL] int(11), ZEROFILL  (0) 2020.07.14
[MyBatis] #, $ 차이  (0) 2020.06.23
[Oracle, MySQL] 시간 계산  (0) 2020.04.10
[Oracle] ORA-12518: TNS:listener could not hand off client connection  (0) 2020.04.07