kettle数据库操作"OPTION SQL_SELECT_LIMIT=DEFAULT"问题解决

时间:2024-03-13 17:14:54

今天在使用kettle配置数据库映射的时候,有如下报错:

Couldn't get field info from [select * from pre_user_base_bak]

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version 
for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT' at line 1

截图如下
kettle数据库操作"OPTION SQL_SELECT_LIMIT=DEFAULT"问题解决
猜测是mysql数据库版本与mysql连接驱动(mysql-connector-java)版本冲突导致

当前环境如下:
执行:select version();
查询数据库版本为:5.7.21-log
kettle数据库操作"OPTION SQL_SELECT_LIMIT=DEFAULT"问题解决
mysql-connector-java版本为:5.1.18
尝试了不同版本的连接驱动:

8.0.15
6.0.6
5.1.47

最终,8.0.15和6.0.6直接导致数据库无法连接,而5.1.47完美解决问题。

解释:
jdbc在连接数据库时候会发送测试语句SET OPTION SQL_SELECT_LIMIT=DEFAULT,而mysql 5.6及以上版本已经不支持此语句。
附:驱动文件各版本的状态表

kettle数据库操作"OPTION SQL_SELECT_LIMIT=DEFAULT"问题解决