【轉】使用kettle工具遇到的問題匯總及解決方案


 

使用kettle工具遇到的問題匯總及解決方案

問題1是     執行./spoon.sh報錯

問題2是     測試數據庫連接性報錯

問題3是    在使用kettle導入數據過程中報錯

 

 

問題1-1

執行./spoon.sh報如下錯誤

xlib:connection to "0.0"refused by server

xlib:No protocol specified

org.eclipse.swt.SWTError:Nomore handles [gtk_init_check() failed]

解決方案

[telepow@bodaodao data-integration]$exit

logout

[root@bodaodao kettle]#xhost+

access controldisabled,clients can connect from any host

[root@]su - telepow

[telepow@bodaodao]cd/opt/kettle/data-integration/

[telepow@bodaodao]./spoon.sh

 

問題1-2

執行./spoon.sh報如下錯誤

“A fatal error has beendetected by the Java Runtime Environment”

原因分析:

這應該時GNOME或者X的庫和Spoon集成的瀏覽器不能一起工作導致的。所以需要編輯(或創建)~/.kettle/.spoonrc,並在里面輸入以下內容:

ShowWelcomePageOnStartup=N

具體操作:

[telepow@mic1 ~]$ cd .kettle/

[telepow@mic1 .kettle]$ pwd

/home/telepow/.kettle

[telepow@mic1 .kettle]$ touch.spoonrc

[telepow@mic1 .kettle]$ vi.spoonrc

ShowWelcomePageOnStartup=N

參考文檔http://www.linuxidc.com/Linux/2012-10/72455.htm

 

問題2-1

創建PostgreSQL數據庫連接,測試數據庫連接報如下錯誤

Connect refused,Check thatthe hostname and port are correct and that the postmaster is accepint TCP/IP

[root@pgsql data]# pwd

/usr/local/postgresql/data

[root@pgsql data]# vipostgresql.conf

listen_addresses = '*'

port = 5432

[root@pgsql data]# servicepostgresql stop

Stopping PostgreSQL: ok

[root@pgsql data]# servicepostgresql start

Starting PostgreSQL: ok

 

問題2-2

創建PostgreSQL數據庫連接,測試數據庫連接報如下錯誤

Errot connecting to database(using class org.postgresql.Driver)

FATAL:no pg_hba.conf entryfor host "192.168.56.102" ,user "root" ,database "test_db"

[root@pgsql data]# cppg_hba.conf pg_hba.conf.bak

[root@pgsql data]# vipg_hba.conf

# IPv4 local connections:

host    all             all             127.0.0.1/32            trust

host    all             all            192.168.56.102/32       trust

/*192.168.56.102為kettle所在服務器,允許該服務器連接

[root@pgsql data]# servicepostgresql stop

Stopping PostgreSQL: ok

[root@pgsql data]# servicepostgresql start

Starting PostgreSQL: ok

 

問題2-3

創建Oracle數據庫連接,測試數據庫連接報如下錯誤

 exceptionwhile loading class

 oracle.rdb.jdbc.rdbThin.Driver

檢查驅動,首先發現 Kettle 默認不帶 Oracle 驅動。於是我把 Oracle 的 JDBC 驅動 ojdbc5.jar/ojdbc6.jar 放到了 Kettle 的目錄data-integration\libext\JDBC 下

具體操作

# mv ojdbc6.jar/opt/kettle/data-integration/libext/JDBC/

重啟機器 OK

連接oracle,可以先創建數據庫連接,在選擇數據庫連接,數據庫名數據庫名是“SID_NAME,而不是 PL/SQL 的 “SERVICE_NAME

 

 

問題2-4

創建MySQL數據庫連接,測試數據庫連接,報如下錯誤

Exception while loading class

org.gjt.mm.mysql.Driver

org.pentaho.di.core.exception.KettleDatabaseException

解決

把mysql.jar(網上下的)放在/data-xxx/libext/JDBC/在目錄下並重啟機器

 

問題2-5

創建Mysql數據庫連接,測試數據庫連接,報如下錯誤

Error connecting to database

message from server host192.168.56.102 is not allowed to this mysql server

解決

如果你想允許用戶myuser從ip為192.168.56.102的主機連接到mysql服務器,並使用mypassword作為密碼

GRANT ALL PRIVILEGES ON *.*TO 'root'@'192.168.56.102' IDENTIFIED BY '123456' WITH GRANT OPTION;

參考http://www.blogjava.net/acooly/archive/2008/09/17/229368.html

 

問題2-6

創建Mysql數據庫連接,測試數據庫連接,報如下錯誤

Access denied for userdfa@192.168.56.102(using password:YES)

用戶名錯誤,修正用戶dfa為正確用戶root(本例用戶為root)即可。

 

問題3-1

在使用kettle導入數據過程中報錯
“ERROR INSERTING /UPDATING ROW”INCORRECT STRING VALUE “\xF1\xBC\xBD\xA8' for culumn keywords at row1,
1,將keywords字段的字符集改為utf8mb4
2,在Kettle的數據庫連接高級設置中,設置當前會話字符集為utf8mb4 
具體操作
1,ALTER TABLE dt_se CHANGE keywords keywords  VARCHAR(550) CHARACTER SET utf8mb4;
2,Edit數據庫連接--->Advanced----->set names utf8mb4; 設置當前會話字符集為utf8mb4

參考文檔:http://vase.iteye.com/blog/2006972

 

問題3-2

在使用kettle導入數據過程中報錯(連的好好的,突然在插入數據不能使用了)

 

Error looking up row in database

communications link failure

causedby:com.mysql.jdbc.exceptions,jdbc4.communicationsException:communications linkfailure

Last packet sent to the server was 0 msago.

原因分析:mysql 連接時間問題,應用程序和MySQL數據庫建立連接,如果超過8小時應用程序不去訪問數據庫,數據庫就斷掉連接,缺省mysql的timeout時間是28800秒,也就是8小時。

解決方法:我們改成8000小時

cd /usr/local/mysql

vi my.cnf

[mysqld]

interactive_timeout=28800000

wait_timeout=28800000

不需要重啟mysql服務

參考文檔:http://hi.baidu.com/onezero520/item/fa82b6dd03409715e1f46f08


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM