勺子与 PostgreSql 的连接问题

Posted

技术标签:

【中文标题】勺子与 PostgreSql 的连接问题【英文标题】:Spoon connectivity issue to PostgreSql 【发布时间】:2016-12-03 13:54:48 【问题描述】:

从 Spoon 连接到数据库时抛出错误消息。

    选择出现在屏幕左上角的“查看”选项,右键单击“数据库连接”选项,然后选择“新建”。 在连接类型下,选择了 postgresql 数据库引擎。

    填写“设置”选项并通过在“连接名称”中键入连接来命名。输入的所有凭据都是有效的,但我仍然收到以下错误消息:

    连接数据库时出错 [XXX-XXX-XXX-XXX ]:org.pentaho.di.core.exception.KettleDatabaseException: 尝试连接数据库时出错

    连接数据库时出错:(使用类 org.postgresql.Driver) 连接尝试失败。

    org.pentaho.di.core.exception.KettleDatabaseException: 尝试连接数据库时出错

    连接数据库时出错:(使用类 org.postgresql.Driver) 连接尝试失败。

    at org.pentaho.di.core.database.Database.normalConnect(Database.java:466)
    at org.pentaho.di.core.database.Database.connect(Database.java:364)
    at org.pentaho.di.core.database.Database.connect(Database.java:335)
    at org.pentaho.di.core.database.Database.connect(Database.java:325)
    at org.pentaho.di.core.database.DatabaseFactory.getConnectionTestReport(DatabaseFactory.java:80)
    at org.pentaho.di.core.database.DatabaseMeta.testConnection(DatabaseMeta.java:2734)
    at org.pentaho.ui.database.event.DataHandler.testDatabaseConnection(DataHandler.java:591)
    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.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.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:88)
    at org.pentaho.di.ui.xul.KettleDialog.show(KettleDialog.java:55)
    at org.pentaho.di.ui.core.database.dialog.XulDatabaseDialog.open(XulDatabaseDialog.java:116)
    at org.pentaho.di.ui.core.database.dialog.DatabaseDialog.open(DatabaseDialog.java:60)
    at org.pentaho.di.ui.spoon.delegates.SpoonDBDelegate.newConnection(SpoonDBDelegate.java:474)
    at org.pentaho.di.ui.spoon.delegates.SpoonDBDelegate.newConnection(SpoonDBDelegate.java:461)
    at org.pentaho.di.ui.spoon.Spoon.newConnection(Spoon.java:8805)
    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.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.jface.tags.JfaceMenuitem.access$100(JfaceMenuitem.java:43)
    at org.pentaho.ui.xul.jface.tags.JfaceMenuitem$1.run(JfaceMenuitem.java:106)
    at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:545)
    at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:490)
    at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:402)
    at org.eclipse.swt.widgets.EventTable.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:1347)
    at org.pentaho.di.ui.spoon.Spoon.waitForDispose(Spoon.java:7989)
    at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9269)
    at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:662)
    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)
    

    引起:org.pentaho.di.core.exception.KettleDatabaseException: 连接到数据库时出错:(使用类 org.postgresql.Driver) 连接尝试失败。

    at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:579)
    at org.pentaho.di.core.database.Database.normalConnect(Database.java:450)
    ... 55 more
    

    原因:org.postgresql.util.PSQLException:连接尝试失败。 在 org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:233) 在 org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:64) 在 org.postgresql.jdbc2.AbstractJdbc2Connection.(AbstractJdbc2Connection.java:144) 在 org.postgresql.jdbc3.AbstractJdbc3Connection.(AbstractJdbc3Connection.java:29) 在 org.postgresql.jdbc3g.AbstractJdbc3gConnection.(AbstractJdbc3gConnection.java:21) 在 org.postgresql.jdbc4.AbstractJdbc4Connection.(AbstractJdbc4Connection.java:31) 在 org.postgresql.jdbc4.Jdbc4Connection.(Jdbc4Connection.java:24) 在 org.postgresql.Driver.makeConnection(Driver.java:410) 在 org.postgresql.Driver.connect(Driver.java:280) 在 java.sql.DriverManager.getConnection(未知来源) 在 java.sql.DriverManager.getConnection(未知来源) 在 org.pentaho.di.core.database.Database.connectUsingClass(Database.java:561) ... 56 更多 引起:java.net.UnknownHostException:PSY-STG-DB1 在 java.net.AbstractPlainSocketImpl.connect(未知来源) 在 java.net.PlainSocketImpl.connect(未知来源) 在 java.net.SocksSocketImpl.connect(未知来源) 在 java.net.Socket.connect(未知来源) 在 org.postgresql.core.PGStream.(PGStream.java:61) 在 org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:109) ... 67 更多

    主机名:XXX-XXX-XXX 港口:1111 数据库名称:XXX_XXX_XX

请建议我如何解决此问题

【问题讨论】:

【参考方案1】:

好的,首先检查一下:

服务器已启动并正在运行? (Postgres) 为什么端口是 1111 而不是 5432 你能连接到 pgadmin 吗?

我认为是配置问题

【讨论】:

以上是关于勺子与 PostgreSql 的连接问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Pentaho 勺子中连接字符串?

postgresql数据库常规操作管理

百味勺子——复位配网和电量报警实现篇

HadoopPostgreSQL 与 Storm 全面解读,你更习惯用哪个?

Pentaho:水壶/勺子:插入后组合多个数据

勺子和Jacoco与gradle