今天在使用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
截图如下
猜测是mysql数据库版本与mysql连接驱动(mysql-connector-java)版本冲突导致
当前环境如下:
执行:select version();
查询数据库版本为:5.7.21-log
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及以上版本已经不支持此语句。
附:驱动文件各版本的状态表