Kettle 学习之问题处理(一):连接数据库报错

Kettle 学习之问题处理(一):连接数据库报错
不废话,直接讲解!

报错信息

光是看到这么多信息头就痛了,不过还是要给出来的,便于确实地分析问题。

错误连接数据库 [127.0.0.1] : org.pentaho.di.core.exception.KettleDatabaseException: 
Error occurred while trying to connect to the database

Error connecting to database: (using class net.sourceforge.jtds.jdbc.Driver)
Network error IOException: Connection refused: connect

org.pentaho.di.core.exception.KettleDatabaseException: 
Error occurred while trying to connect to the database

Error connecting to database: (using class net.sourceforge.jtds.jdbc.Driver)
Network error IOException: Connection refused: connect

 at org.pentaho.di.core.database.Database.normalConnect(Database.java:493)
 at org.pentaho.di.core.database.Database.connect(Database.java:389)
 at org.pentaho.di.core.database.Database.connect(Database.java:360)
 at org.pentaho.di.core.database.Database.connect(Database.java:350)
 at org.pentaho.di.core.database.DatabaseFactory.getConnectionTestReport(DatabaseFactory.java:83)
 at org.pentaho.di.core.database.DatabaseFactory.getConnectionTestResults(DatabaseFactory.java:112)
 at org.pentaho.di.core.database.DatabaseMeta.testConnectionSuccess(DatabaseMeta.java:2848)
 at org.pentaho.ui.database.event.DataHandler.testDatabaseConnection(DataHandler.java:649)
 at sun.reflect.GeneratedMethodAccessor93.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at org.pentaho.ui.xul.impl.AbstractXulDomContainer.invoke(AbstractXulDomContainer.java:313)
 at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:157)
 at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:141)
 at org.pentaho.ui.xul.swt.tags.SwtButton.access$500(SwtButton.java:43)
 at org.pentaho.ui.xul.swt.tags.SwtButton$4.widgetSelected(SwtButton.java:137)
 at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
 at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
 at org.eclipse.swt.widgets.Display.sendEvent(Unknown Source)
 at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
 at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
 at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
 at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)
 at org.eclipse.jface.window.Window.open(Window.java:796)
 at org.pentaho.di.ui.xul.KettleDialog.show(KettleDialog.java:89)
 at org.pentaho.di.ui.xul.KettleDialog.show(KettleDialog.java:56)
 at org.pentaho.di.ui.core.database.dialog.XulDatabaseDialog.open(XulDatabaseDialog.java:117)
 at org.pentaho.di.ui.core.database.dialog.DatabaseDialog.open(DatabaseDialog.java:61)
 at org.pentaho.di.ui.spoon.delegates.SpoonDBDelegate.editConnection(SpoonDBDelegate.java:96)
 at org.pentaho.di.ui.spoon.Spoon.doubleClickedInTree(Spoon.java:3140)
 at org.pentaho.di.ui.spoon.Spoon.doubleClickedInTree(Spoon.java:3075)
 at org.pentaho.di.ui.spoon.Spoon.access$1700(Spoon.java:373)
 at org.pentaho.di.ui.spoon.Spoon$26.widgetDefaultSelected(Spoon.java:6354)
 at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
 at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
 at org.eclipse.swt.widgets.Display.sendEvent(Unknown Source)
 at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
 at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
 at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
 at org.pentaho.di.ui.spoon.Spoon.readAndDispatch(Spoon.java:1385)
 at org.pentaho.di.ui.spoon.Spoon.waitForDispose(Spoon.java:7968)
 at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9350)
 at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:711)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at org.pentaho.commons.launcher.Launcher.main(Launcher.java:92)
Caused by: org.pentaho.di.core.exception.KettleDatabaseException: 
Error connecting to database: (using class net.sourceforge.jtds.jdbc.Driver)
Network error IOException: Connection refused: connect

 at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:601)
 at org.pentaho.di.core.database.Database.normalConnect(Database.java:477)
 ... 47 more
Caused by: java.sql.SQLException: Network error IOException: Connection refused: connect
 at net.sourceforge.jtds.jdbc.JtdsConnection.<init>(JtdsConnection.java:436)
 at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184)
 at java.sql.DriverManager.getConnection(Unknown Source)
 at java.sql.DriverManager.getConnection(Unknown Source)
 at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:585)
 ... 48 more
Caused by: java.net.ConnectException: Connection refused: connect
 at java.net.DualStackPlainSocketImpl.connect0(Native Method)
 at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
 at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
 at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
 at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
 at java.net.PlainSocketImpl.connect(Unknown Source)
 at java.net.SocksSocketImpl.connect(Unknown Source)
 at java.net.Socket.connect(Unknown Source)
 at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:288)
 at net.sourceforge.jtds.jdbc.SharedSocket.<init>(SharedSocket.java:251)
 at net.sourceforge.jtds.jdbc.JtdsConnection.<init>(JtdsConnection.java:331)
 ... 52 more

主机名       : 127.0.0.1
端口           : 1433
数据库名:UFDATA_003_2021

问题解析

以上错误提示太多,真正用于分析的可从以下语句进行:

错误连接数据库 [127.0.0.1] : org.pentaho.di.core.exception.KettleDatabaseException: 
Error occurred while trying to connect to the database

Error connecting to database: (using class net.sourceforge.jtds.jdbc.Driver)
Network error IOException: Connection refused: connect

这里的大概意思其实就是:在尝试连接数据库时发生了错误,连接不成功,使用net.sourceforge.jtds.jdbc.Driver类连接被拒绝。
出现这样子的情况,有以下原因:

1、连接参数设置错误。

这个我遇到过,因为数据库默认是1433的端口号,导致我一直连接错误,所以连接时最好检查下。

2、jar包错误。

此错误也是大多数人遇到的问题,lib目录缺少了对应数据库的驱动程序,导致连接时无法识别到数据库,就报错了。

问题处理过程

了解了错误的原因,那基本就好解决了。

处理1:连接参数设置错误

这个处理起来就比较简单了,对照着各个参数设置即可。

  • 主机名直接填网络内的数据服务器的主机名称或者是IP都可以,使用主机名更方便。
  • 数据库名称就是所需要连接的数据库的名称。
  • 端口号算是最需要,因为默认的1433可能会被占用,那就需要去确认正确的端口号了。
  • 用户名跟密码就填写登录数据库的用户名跟密码,可以使用sa,但在做项目的时候最好还是不要,自己建立一个用来连接即可。

以下讲解如何确认数据库的端口号

确认数据库的端口设置

如需确认数据库端口,则进入数据库中,新建查询,输入以下语句查询:

exec sys.sp_readerrorlog 0, 1, 'listening'

直接执行语句,就能够在查询到的表中获得端口信息了
结果表

修改端口的设置

知道了数据库的端口号,就直接在Kettle中进行修改即可,修改完成后再次测试,问题迎刃而解。
连接成功提示

处理2:jar包错误

jar包的问题就需要下载驱动程序文件用以补充lib。

下载驱动程序

需要下载的是jtds驱动程序,不同的数据库有不同的包,以下提供下载地址。

下载完成后,将jar包放到kettle程序的lib文件夹下即可。

注意:本文有参考部分网文,自身实践总结得出的结果,旨在学习积累,如有异议还请指出,会酌情借鉴进行修改,感谢各路大佬的文章指导。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
kettle连接数据库报错可能有多种原因。根据引用、、中提供的信息,错误信息中显示了"org.pentaho.di.core.exception.KettleDatabaseException: Error occurred while trying to connect to the database"。这种情况表明在尝试连接数据库时出现了错误。 要解决这个问题,可以考虑以下几个方面: 1. 检查数据库连接配置:确认连接数据库的用户名、密码、主机名、端口号等信息是否正确。可以根据具体的数据库类型和版本来查看正确的连接配置。 2. 检查网络连接:确保可以与数据库服务器建立正常的网络连接。可以尝试使用其他工具或命令行工具来测试与数据库服务器的连接。 3. 检查数据库权限:确保连接数据库的用户具有足够的权限来执行所需的操作。可以检查连接数据库的用户是否具有正确的权限,例如对表、视图、存储过程等的读取和写入权限。 4. 检查数据库驱动程序:确保使用的数据库驱动程序与kettle版本兼容。有时候,更新或更改数据库版本可能需要更新驱动程序。 5. 检查数据库状态:确保数据库服务器正常运行。可以尝试重新启动数据库服务器或联系管理员进行进一步的排查。 综上所述,kettle连接数据库报错的原因可能是配置错误、网络连接问题、数据库权限、驱动程序不兼容或数据库服务器故障。需要根据具体的错误信息和情况来进行排查和解决。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [已解决(kettle连接数据库报错问题Driver class ‘net.sourceforge.jtds.jdbc.Driver’ could not be ...](https://blog.csdn.net/yuan2019035055/article/details/124804666)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [kettle连接Oracle报错](https://download.csdn.net/download/weixin_38599537/13684204)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值