提示:这个问题的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语句中进行条件判断的时候也要注意数据类型。
解决方案: 把数据类型和对应的位置改过来,确保类型一致,这样就不会出错了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)