1. 程式人生 > >Kettle (PDI) 連線 MS SQL server資料庫

Kettle (PDI) 連線 MS SQL server資料庫

先去微軟下載JDBC驅動:

https://www.microsoft.com/en-US/download/details.aspx?id=11774

解壓後得到的目錄裡有 jre7 jre8 和 auth

其中auth裡的sqljdbc_auth.dll是用於sqlserver的integrated authentication(注意區分x64和x86)

而 jre7 和 jre8 裡的sqljdbc42.jar是JDBC驅動

jar 放kettle安裝目錄中的lib目錄下, 比如C:\Program Files (x86)\Kettle\lib

sqljdbc_auth.dll 放到java的目錄裡, 這裡要注意你的kettle是呼叫JRE還是JDK, 是64位還是32位, 比如呼叫的是64位JRE就放到 C:\Program Files\Java\jre1.8.0_151\bin 下, 7.0的kettle預設是呼叫環境變數PATH所指向的JRE或JDK

也可以單獨宣告一個環境變數:_PENTAHO_JAVA_HOME, 指向你所希望的JRE或JDK目錄, Kettle會從這個目錄呼叫java.exe/javaw.exe, 只要這個目錄的bin裡有sqljdbc_auth.dll 即可. 可以參考spoon.bat, 裡面有個pushd , 就是cd 到特定目錄來執行exe

根據我的親測 Path環境變數 必須指向 JRE, 似乎只有JRE可行

如果JRE發生了升級,記得把dll重新拷一遍,然後重啟KETTLE


國外網友的回覆也說只有JRE可行:

i got it to work with Java 8.

the default directory from Oracle's installation is C:\Program Files\Java\jre1.8_25.

i believe that Pentaho is looking for a directory that is more like C:\Program Files\Java\jre8
When installing, i changed the default directory to C:\Program Files\Java\jre8 and updated the JAVA_HOME to this value.

then, the integrated authentication seemed to work.