-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Data truncation: Invalid JSON text: "Invalid encoding in string." at position 20 #982
Comments
我知道是什么原因引起的了,但是不知道怎么解决。 我的表navigation_resource的resource_info列是json格式的 show create table navigation_resource \G update navigation_resource set resource_info='{"linkUrl": "https://patient.allinmed.cn/patientEducation/patientDetail?id=1532412931435", "coverUrl": "https://ixxxxxxxxcahfToMFsroVCJReZRgZXQgtJypWX.jpg", "authorName": xxxx\t", "hospitalName": "xxxxxxx"}'; ERROR 3140 (22032): Invalid JSON text: "Invalid encoding in string." at position 207 in value for column 'navigation_resource .resource_info'. 但json格式的字段不能直接用普通的update语句。 看来是otter不支持json。真遗憾 我装的otter是最新版4.2.18 |
应该不是json的问题,而是特殊字符处理的问题。类似的字符: |
请问,怎么升级otter里面的canal |
目前最新otter版本v4.2.18 用的是 canal-1.1.4,还会出现 |
v4.2.18是2019年的,现在都2023年了 |
看起来这样后,重新构建打包就可以 |
主要我不太确定是不是因为 canal 的原因,或者升级 canal 后就可以解决这个问题吗? 我正在找引起这个问题的代码,不过还没找到, java 用的不熟。。 |
看了下canal的升级日志,v1.1.5 修复了这个问题 https://github.com/alibaba/canal/issues/3110,我升级下到最新版 v1.1.6 试试 |
升级完确定能用后,欢迎提交个PR |
可以用,但是升级到 canal v1.1.5 和 v1.1.6 都会有新的问题。 我是在 canal v1.1.5 的基础上修了 [issue] (alibaba/canal#3538) ,然后编译成 jar 包让 otter 使用,otter 用这个jar 包然后再改下 druid 版本编译打包后就可以用了。 |
太棒了。 能把你编译后能用的otter新版本,上传到这里吗。 |
我 fork 了一份仓库,上传了修改的代码和二进制包,链接在这里:https://github.com/LieLieLiekey/otter/releases/tag/v4.2.18-g1 注意:这个包仅自己使用,目前工作良好。如果用的话,建议先在测试环境体验下再决定生产环境使用 |
给你点赞,谢谢你的辛苦付出和分享精神。 |
pid:13 nid:1 exception:setl:com.alibaba.otter.node.etl.load.exception.LoadException: java.util.concurrent.ExecutionException: com.alibaba.otter.node.etl.load.exception.LoadException: com.alibaba.otter.node.etl.load.exception.LoadException: com.alibaba.otter.node.etl.load.exception.LoadException: org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [insert into
patient_live_video
.navigation_resource
(area_id
,column_id
,navigation_id
,resource_id
,resource_type
,resource_name
,resource_info
,sort
,tag_id
,tag_name
,is_deleted
,create_user
,update_user
,create_time
,update_time
,id
) values (? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ?) on duplicate key updatearea_id
=values(area_id
) ,column_id
=values(column_id
) ,navigation_id
=values(navigation_id
) ,resource_id
=values(resource_id
) ,resource_type
=values(resource_type
) ,resource_name
=values(resource_name
) ,resource_info
=values(resource_info
) ,sort
=values(sort
) ,tag_id
=values(tag_id
) ,tag_name
=values(tag_name
) ,is_deleted
=values(is_deleted
) ,create_user
=values(create_user
) ,update_user
=values(update_user
) ,create_time
=values(create_time
) ,update_time
=values(update_time
) ,id
=values(id
)]; Data truncation: Invalid JSON text: "Invalid encoding in string." at position 207 in value for column 'navigation_resource.resource_info'.; nested exception is com.mysql.jdbc.MysqlDataTruncation: Data truncation: Invalid JSON text: "Invalid encoding in string." at position 207 in value for column 'navigation_resource.resource_info'.at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:101)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:603)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:812)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:868)
at com.alibaba.otter.node.etl.load.loader.db.DbLoadAction$DbLoadWorker$2.doInTransaction(DbLoadAction.java:625)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
at com.alibaba.otter.node.etl.load.loader.db.DbLoadAction$DbLoadWorker.doCall(DbLoadAction.java:617)
at com.alibaba.otter.node.etl.load.loader.db.DbLoadAction$DbLoadWorker.call(DbLoadAction.java:545)
at com.alibaba.otter.node.etl.load.loader.db.DbLoadAction.doTwoPhase(DbLoadAction.java:462)
at com.alibaba.otter.node.etl.load.loader.db.DbLoadAction.doLoad(DbLoadAction.java:275)
at com.alibaba.otter.node.etl.load.loader.db.DbLoadAction.load(DbLoadAction.java:161)
at com.alibaba.otter.node.etl.load.loader.db.DbLoadAction$$FastClassByCGLIB$$d932a4cb.invoke()
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:618)
at com.alibaba.otter.node.etl.load.loader.db.DbLoadAction$$EnhancerByCGLIB$$80fd23c2.load()
at com.alibaba.otter.node.etl.load.loader.db.DataBatchLoader$2.call(DataBatchLoader.java:198)
at com.alibaba.otter.node.etl.load.loader.db.DataBatchLoader$2.call(DataBatchLoader.java:189)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Invalid JSON text: "Invalid encoding in string." at position 207 in value for column 'navigation_resource.resource_info'.
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3976)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3914)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2495)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1903)
at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2124)
at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2058)
at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5158)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2043)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:818)
at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:1)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:587)
---Pks
EventColumn[index=0,columnType=-5,columnName=id,columnValue=374,isNull=false,isKey=true,isUpdate=true]
---oldPks
---Columns
EventColumn[index=1,columnType=-5,columnName=area_id,columnValue=0,isNull=false,isKey=false,isUpdate=true]
EventColumn[index=2,columnType=-5,columnName=column_id,columnValue=0,isNull=false,isKey=false,isUpdate=true]
EventColumn[index=3,columnType=-5,columnName=navigation_id,columnValue=15,isNull=false,isKey=false,isUpdate=true]
EventColumn[index=4,columnType=-5,columnName=resource_id,columnValue=1532412931435,isNull=false,isKey=false,isUpdate=true]
EventColumn[index=5,columnType=4,columnName=resource_type,columnValue=4,isNull=false,isKey=false,isUpdate=true]
EventColumn[index=6,columnType=12,columnName=resource_name,columnValue=脊柱侧弯的防治方法有哪些?,isNull=false,isKey=false,isUpdate=true]
EventColumn[index=7,columnType=12,columnName=resource_info,columnValue={"linkUrl": "https://patient.allinmed.cn/patientEducation/patientDetail?id=1532412931435", "coverUrl": "https://xxxxxxxxxx20/12/29/dxDcahfToMFsroVCJReZRgZXQgtJypWX.jpg", "authorName": "xxxxxx ", "hospitalName": "xxxxxx"},isNull=false,isKey=false,isUpdate=true]
EventColumn[index=8,columnType=4,columnName=sort,columnValue=280,isNull=false,isKey=false,isUpdate=true]
EventColumn[index=9,columnType=-5,columnName=tag_id,columnValue=0,isNull=false,isKey=false,isUpdate=true]
EventColumn[index=10,columnType=12,columnName=tag_name,columnValue=,isNull=false,isKey=false,isUpdate=true]
EventColumn[index=11,columnType=-7,columnName=is_deleted,columnValue=1,isNull=false,isKey=false,isUpdate=true]
EventColumn[index=12,columnType=12,columnName=create_user,columnValue=lishupeng,isNull=false,isKey=false,isUpdate=true]
EventColumn[index=13,columnType=12,columnName=update_user,columnValue=lishupeng,isNull=false,isKey=false,isUpdate=true]
EventColumn[index=14,columnType=93,columnName=create_time,columnValue=2020-12-29 16:31:08,isNull=false,isKey=false,isUpdate=true]
EventColumn[index=15,columnType=93,columnName=update_time,columnValue=2021-01-23 05:30:02,isNull=false,isKey=false,isUpdate=true]
---Sql
The text was updated successfully, but these errors were encountered: