轉載文章版權聲明:本文轉載,原作者薄海 ,原文網址鏈接 http://blog.csdn.net/bohai0409/article/details/38072465,聯系方式郵箱bohai7000@126.com。QQ-1511777。
問題1是 執行./spoon.sh報錯
問題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