์ด์ ๋ ธ์ ๋ธ๋ก๊ทธ์ java.sql.SQLException: Incorrect string value (2021.03.28)๋ก๋ถํฐ ๋ง์ด๊ทธ๋ ์ด์ ๋ ๊ธ์ ๋๋ค.
java.sql.SQLException: Incorrect string value: '\xEC\xB0\xBD\xEC\xB0\xBD...' for column `mm_server`.`restaurant`.`name` at row 1
Query is: insert into restaurant (deliveryable, description, location, name, price, type) values (?, ?, ?, ?, ?, ?), parameters [0,<null>,3,'์ฐฝ์ฐฝ๊ตญ๋ฐฅ',0,0]
java thread: http-nio-8080-exec-1
at org.mariadb.jdbc.internal.util.LogQueryTool.exceptionWithQuery(LogQueryTool.java:163) ~[mariadb-java-client-2.3.0.jar!/:na]
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:280) ~[mariadb-java-client-2.3.0.jar!/:na]
at org.mariadb.jdbc.MariaDbPreparedStatementClient.executeInternal(MariaDbPreparedStatementClient.java:223) ~[mariadb-java-client-2.3.0.jar!/:na]
at org.mariadb.jdbc.MariaDbPreparedStatementClient.execute(MariaDbPreparedStatementClient.java:159) ~[mariadb-java-client-2.3.0.jar!/:na]
at org.mariadb.jdbc.MariaDbPreparedStatementClient.executeUpdate(MariaDbPreparedStatementClient.java:194) ~[mariadb-java-client-2.3.0.jar!/:na]
at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61) ~[HikariCP-3.2.0.jar!/:na]
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java) ~[HikariCP-3.2.0.jar!/:na]
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:175) ~[hibernate-core-5.3.12.Final.jar!/:5.3.12.Final]
at org.hibernate.dialect.identity.GetGeneratedKeysDelegate.executeAndExtract(GetGeneratedKeysDelegate.java:57) ~[hibernate-core-5.3.12.Final.jar!/:5.3.12.Final]
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:42) ~[hibernate-core-5.3.12.Final.jar!/:5.3.12.Final]
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3090) ~[hibernate-core-5.3.12.Final.jar!/:5.3.12.Final]
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3683) ~[hibernate-core-5.3.12.Final.jar!/:5.3.12.Final]
at org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:81) ~[hibernate-core-5.3.12.Final.jar!/:5.3.12.Final]
at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:645) ~[hibernate-core-5.3.12.Final.jar!/:5.3.12.Final]
at org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:282) ~[hibernate-core-5.3.12.Final.jar!/:5.3.12.Final]
at org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:263) ~[hibernate-core-5.3.12.Final.jar!/:5.3.12.Final]
at org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:317) ~[hibernate-core-5.3.12.Final.jar!/:5.3.12.Final]
at org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:332) ~[hibernate-core-5.3.12.Final.jar!/:5.3.12.Final]
at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:289) ~[hibernate-core-5.3.12.Final.jar!/:5.3.12.Final]
at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:196) ~[hibernate-core-5.3.12.Final.jar!/:5.3.12.Final]
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:127) ~[hibernate-core-5.3.12.Final.jar!/:5.3.12.Final]
at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:192) ~[hibernate-core-5.3.12.Final.jar!/:5.3.12.Final]
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:135) ~[hibernate-core-5.3.12.Final.jar!/:5.3.12.Final]
"nohup.out" 578L, 77618C
๋ฌธ์ ์์ธ
์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ ์์ฒญ์ ๋ณด๋์ ๋ ๋ฐ์ํ๋ค. java.sql.SQLException: Incorrect string value: ์์ ์ ์ ์๋ฏ์ด ์๋ชป๋ ๋ฌธ์์ด ๊ฐ ๋๋ฌธ์ ๋ฐ์ํ์๋๋ฐ, ์์ธ์ ์ธ์ฝ๋ฉ์ ๋ฌธ์ ์๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
๋ก๊ทธ์์ ๋ณผ ์ ์๋ฏ์ด restaurant ํ ์ด๋ธ์ name ์ปฌ๋ผ์ '์ฐฝ์ฐฝ๊ตญ๋ฐฅ' ์ด๋ผ๋ ํ๊ธ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋์ง๋ง ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ์ด๋ DB์ ์ธ์ฝ๋ฉ ๋ฐฉ์ ๋ฌธ์ ์ธ๋ฐ, RDS์ ๊ธฐ๋ณธ ์ธ์ฝ๋ฉ ๋ฐฉ์์ latin-1 ์ด๋ค. ๋ฐ๋ผ์ ํ๋ผ๋ฏธํฐ ๊ทธ๋ฃน์ ํตํด์ utf8, utf8mb4, utf8mb4_unicode_ci ๋ก ๋ณ๊ฒฝํด์ค๋๋ค.
๐ `show variables like 'c%';` ๋ฅผ ํตํด db์ ์ธ์ฝ๋ฉ ๋ฐฉ์์ ํ์ธํ๋๋ utf8mb4๊ฐ ์๋๋ผ utf8์ธ ๋ถ๋ถ์ด ์์ ์ ์๋๋ฐ, ์ด๋ ํฐ ๋ฌธ์ ๊ฐ ์๋๋ ๋์ด๊ฐ๋ ๋๋ค.
ํน์ ๊ทธ๋๋ ํด๊ฒฐ๋์ง ์๋๋ค๋ฉด??
์ด๋ ์ด๋ฏธ ์์ฑ๋ ํ ์ด๋ธ์ด ๋ณ๊ฒฝ์ ์ธ์ฝ๋ฉ ๋ฐฉ์์ผ๋ก ์์ฑ๋์๊ธฐ ๋๋ฌธ์ผ ๊ฒ์ด๋ค.
- ์์ฑ๋ ํ ์ด๋ธ์ ์ ๋ณด ํ์ธ (ํ ์ด๋ธ ์ ๋ณด ์ ์ผ ๋ฐ์ DEFAULT CHARSET์ด ์ธ์ฝ๋ฉ ๋ฐฉ์)
SHOW CREATE TABLE table_name;
- utf8 ๋ก ํ ์ด๋ธ์ ์ธ์ฝ๋ฉ์ ๋ณ๊ฒฝ
ALTER TABLE table_name CONVERT TO character SET utf8;
ํด๊ฒฐ!
'๐ค Backend > SpringBoot' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Transaction ์ด๋? (0) | 2024.02.26 |
---|---|
๋น๋ ๊ด๋ฆฌ ๋๊ตฌ Maven๊ณผ Gradle ๋น๊ตํ๊ธฐ (0) | 2024.02.25 |
์คํ๋ง jpa application.properties ์ค์ (0) | 2024.02.25 |
์คํ๋ง ๋ถํธ ํ๋ก์ ํธ์ ์๋ํ๋ธ์ Jacoco ๋ฑ๋กํ๊ณ ์ฝ๋ ํ์ง ํ์ธํ๊ธฐ (0) | 2024.02.25 |
ํ๋ก ํธ๊ฐ ํผ๋์ ๋น ์ง์ง ์๋ ์๋ฒ์ API ๋ฌธ์ ๋ง๋ค๊ธฐ (1) | 2024.02.25 |