【转】使⽤kettle⼯具遇到的问题汇总及解决⽅案
问题1是执⾏./spoon.sh报错
问题2是连接性报错
问题3是在使⽤kettle导⼊数据过程中报错
问题1-1
执⾏./spoon.sh报如下错误
xlib:connection to "0.0"refused by server
xlib:No protocol specified
解决⽅案
[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 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
问题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]# f
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 f entryfor host "192.168.56.102" ,user "root" ,database "test_db"
[root@pgsql data]# f f.bak
[root@pgsql data]# f
# 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
创建数据库连接,测试数据库连接报如下错误
exceptionwhile loading class
.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
创建数据库连接,测试数据库连接,报如下错误
Exception while loading class
Driver
org.xception.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;
问题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
问题3-2
在使⽤kettle导⼊数据过程中报错(连的好好的,突然在插⼊数据不能使⽤了)
Error looking up row in database
communications link failure
ptions,jdbc4municationsException:communications linkfailure
Last packet sent to the server was 0 msago.
原因分析:mysql 连接时间问题,应⽤程序和MySQL数据库建⽴连接,如果超过8⼩时应⽤程序不去访问数据库,数据库就断掉连接,缺省mysql的timeout时间是28800秒,也就是8⼩时。
解决⽅法:我们改成8000⼩时
cd /usr/local/mysqlmysql下载starting the server
vi myf
interactive_timeout=28800000 wait_timeout=28800000
不需要重启mysql服务

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。