关于Kettle(Spoon)连接数据库出现的一些问题以及jdk环境变量配置
1.首先最先出现的问题是软件的安装下载:
下面是百度网盘文件夹连接,
链接:https://pan.baidu.com/s/1HrEGhzCS0wyV7W596I8gcQ
提取码:mz5l
2.其次就是使用问题,运行慢,右击卡死
这个软件运行比较慢,这个目前我还没有什么好的办法,没有解决
网上方法大多数都是修改内存设置,也就是把Spoon.bat中的
if “%PENTAHO_DI_JAVA_OPTIONS%”"" set PENTAHO_DI_JAVA_OPTIONS="-Xms1024m" “-Xmx2048m” “-XX:MaxPermSize=256m”
改为
if “%PENTAHO_DI_JAVA_OPTIONS%”"" set PENTAHO_DI_JAVA_OPTIONS="-Xms512m" “-Xmx512m” “-XX:MaxPermSize=256m”
但是这个对于我来说没有解决问题
3.对jdk版本的限制
目前我使用的版本仅支持jdk1.8版本,因为Kettle 是一款国外开源的 ETL 工具,纯 Java 编写,绿色无需安装,数据抽取高效稳定(数据迁移工具),需要配置Java环境才能使用,这里我用的kettle版本是7.1,推荐使用1.8版本最为稳定,不是越新越好。可在cmd里,输入java -version查看版本(配置方法网上较多,就不再表述)
kettle6.1版本必须配套使用JDK1.7及以上版本
4.Kettle需要的jdk环境变量配置
首先打开软件,选择JDK,点击下载,再选择接受条款。推荐大家去官网下载
(不能都安装在java文件夹的根目录下,若是旧版本,jdk和jre安装在同一文件夹会出错)
根据操作系统选择Windows,点击下载,双击打开并安装。
打开计算机属性,选择高级系统设置,再选择系统变量。
系统变量→新建 JAVA_HOME 变量 。
变量值填写jdk的安装目录(本人是 E:\Java\jdk11)
系统变量→寻找 Path 变量→编辑
在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)
上述需要注意这是一些旧版本的方法,新版本的jdk只有一个目录,旧版本会有jdk和jre两个版本,只有一个的情况下就直接选择jdk目录
检验是否配置成功 运行cmd 输入 java -version (java 和 -version 之间有空格)
显示版本信息 则说明安装和配置成功。否则会报错。
5.连接数据库 (双击DB连接报错)
这是因为数据库驱动版本错误或者缺少数据库驱动,首先启动MySQL服务,命令为:net start mysql
然后输入mysql -u用户名 -p密码进入MySQL,查询到当前MySQL版本,
然后去查找下载对应版本的数据库驱动包,
6.kettle新建转换后无法打开DB连接,出现错误org.pentaho.ui.xul.XulException: java.lang.reflect.InvocationTargetException无法创建数据库连接此后,得到了相同动作的更一般错误:General error in dialog。
在创建新建转换时,连接数据库遇到这个错误,这是因为Java版本的问题。使用1.8版本即可
7.出现错误Communications link failure:The last packet sent successfully to the server was 0 milliseconds ago.
Mysql服务器默认的“wait_timeout”是8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该connection。这就是造成上面的异常的问题所在。
解决方法,启动mysql,然后输入mysql -u用户名 -p密码进入MySQL,再输入
show global variables like ‘wait_timeout’;
查看当前的时间
这时输入指令
1、set global wait_timeout=604800;
2、set global interactive_timeout=604800;