1. 程式人生 > >kettle連線資料庫報錯:Error occured while trying to connect to the datab

kettle連線資料庫報錯:Error occured while trying to connect to the datab

1 引言

在用kettle開發時常會出現 Error occured while trying to connect to the database 錯誤,但是仔細觀察日誌,引起這個錯誤的原因不盡相同。這個錯誤看起來很簡單,但是有時候越簡單的錯誤越沒有耐心改,尤其是忙的時候,不小心填錯了某個引數導致這個錯誤但是自己感覺沒問題卻跑不成功,這是最煩人的。這時候需要淡定、不妨上網查查,錯誤也許就可以愉快的解決了。下面給出這錯誤的更細節錯誤的不同發生情況。

2 示例

有個很簡單的ktr指令碼(當前kettle版本3.0.4),如下圖:


表輸入正常的配置資訊如下:


下圖 kettle安裝檔案目錄是有jar包的情況:

按照上述配置,ktr指令碼是可以正常執行完的。

1 首先來看 缺少ojdbc jar包的錯

下圖是ojdbc包被刪除的情況:

日誌資訊:

重點是 

 exception while loading class oracle.jdbc.driver.OracleDriver。 意思是載入類 oracle.jdbc.driver.OracleDriver 異常 這很有可能就是jar包出問題。

2 下面是ip地址輸入錯誤


日誌給出的錯誤資訊:


Io異常大概意思是:網路介面卡不能建立連線。

3 資料庫名錯誤


日誌報錯的情況:

An error occurred, processing will be stopped:  Error occured while trying to connect to the database

2014/11/18 23:34:40 - 表輸出.0 - ERROR (version 3.0.4, build 53 from 2008/06/24 18:14:00) : Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor The Connection descriptor used by the client was:127.0.0.1:1521:orc

大概意思:監聽由於下面的錯誤拒絕了連線:TNS(oracle 服務端和客戶端通訊協議)監聽不知道當前的sid(資料庫的唯一標示),這個sid在連線描述器中給出,使用這個描述器的客戶端是127.0.0.1:1521:orc

4 埠號不正確

日誌情況:

錯誤與ip地址不準確一樣:


5 使用者名稱或密碼錯誤

使用者名稱或者密碼錯誤,日誌資訊都是如下:

大概意思是:無效的使用者名稱或密碼,登陸被拒絕

6 執行伺服器沒有許可權訪問遠端資料庫

從執行伺服器ping 遠端資料庫機器ip:

從執行伺服器telnet 遠端資料庫埠:

都是通的,但是表輸出是這個 的指令碼會報錯:


logon rejected 拒絕登陸。執行指令碼的機器沒有訪問資料庫的許可權導致此錯誤。

在這裡 是表輸出的資料庫 設定了黑白名單 而執行伺服器不在它的白名單裡 導致此錯誤

3 總結

遇到類似的此類錯誤,需要淡定仔細的觀察日誌,使用排除法,才能快速的定位並解決掉問題。