com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect string value: '\xF0\x9F\xA5\xAC&g...' for column `{DB 명}`.`{Table 명}`.`{Column}` at row 1
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3876) ~[mysql-connector-java-5.1.38.jar:5.1.38]
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3814) ~[mysql-connector-java-5.1.38.jar:5.1.38]
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2478) ~[mysql-connector-java-5.1.38.jar:5.1.38]
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2625) ~[mysql-connector-java-5.1.38.jar:5.1.38]
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2551) ~[mysql-connector-java-5.1.38.jar:5.1.38]
	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861) ~[mysql-connector-java-5.1.38.jar:5.1.38]

 

 패치 후 갑자기?! 포틀릿 데이터 저장시 DB에서 오류 발생

 

확인결과 '옵션' 값들이 encodeURIComponent() 통해서 들어가는데, string으로 변환되어 DB 컬럼에 저장시 오류 발생

 

 

해당 컬럼의 character set 변경하여 해결.

HeidiSQL 에서 바로 변경

 

아래 쿼리로도 변경가능

alter table {테이블 이름} change column {컬럼 이름} {컬럼 이름} {컬럼 속성} collate 
'utf8mb4_unicode_ci'

(ex. ALTER TABLE test_column CHANGE COLUMN a_column a_column LONGTEXT NULL DEFAULT NULL
COLLATE 'utf8mb4_unicode_ci' )

 

 

+ Recent posts