Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value: ‘s

项目场景:

提示:这个问题的mysql连接设置的问题类型不一致,然后我是用flink连接mysql报错。


问题描述:

Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value: 'sensor_1'
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3513)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2554)
	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1761)
	at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1021)
	at com.Flink.MyJdbcSinkFunc.invoke(JdbcSinkTest.scala:48)
	at com.Flink.MyJdbcSinkFunc.invoke(JdbcSinkTest.scala:33)
	at org.apache.flink.streaming.api.functions.sink.SinkFunction.invoke(SinkFunction.java:52)
	at org.apache.flink.streaming.api.operators.StreamSink.processElement(StreamSink.java:56)
	at org.apache.flink.streaming.runtime.tasks.OperatorChain$CopyingChainingOutput.pushToOperator(OperatorChain.java:641)
	... 12 more

Process finished with exit code 1

原因分析:

提示 ,当比较的数据类型不一致且无法强制转换时,就会出现上述错误,因为我的id是String,而temp是Double,然而我在代码中将类型以及位置设置错误,所以出现了上述错误。所以把类型也改过来之后,就可以正常运行了。因此在数据库建模时要多加注意数据类型,或者在where语句中进行条件判断的时候也要注意数据类型。

在这里插入图片描述


解决方案:

把数据类型和对应的位置改过来,确保类型一致,这样就不会出错了。

Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value: ‘s_第1张图片
Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value: ‘s_第2张图片

你可能感兴趣的:(#,Flink,hadoop,big,data,hdfs)