Pentaho 与 PostgreSQL 的连接
Connection in Pentaho with PostgreSQL
我有驱动 postgresql-9.3-1103.jdbc3.jar
文件夹 ...data-integration\lib 并且也配置了 classpah
我安装了 postgresql 9.3,并且在 postgresql 中安装了 db prueba
但这是错误
Error connecting to database [PostgresDB] : org.pentaho.di.core.exception.KettleDatabaseException:
Error occurred while trying to connect to the database
Error connecting to database: (using class org.postgresql.Driver)
Invalid connection URL url jdbc:postgresql://localhost:5432/prueba
org.pentaho.di.core.exception.KettleDatabaseException:
Error occurred while trying to connect to the database
Error connecting to database: (using class org.postgresql.Driver)
Invalid connection URL url jdbc:postgresql://localhost:5432/prueba
at org.pentaho.di.core.database.Database.normalConnect(Database.java:428)
at org.pentaho.di.core.database.Database.connect(Database.java:358)
at org.pentaho.di.core.database.Database.connect(Database.java:311)
at org.pentaho.di.core.database.Database.connect(Database.java:301)
at org.pentaho.di.core.database.DatabaseFactory.getConnectionTestReport(DatabaseFactory.java:80)
at org.pentaho.di.core.database.DatabaseMeta.testConnection(DatabaseMeta.java:2686)
at org.pentaho.ui.database.event.DataHandler.testDatabaseConnection(DataHandler.java:546)
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.access0(SwtButton.java:43)
at org.pentaho.ui.xul.swt.tags.SwtButton.widgetSelected(SwtButton.java:138)
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.ui.xul.swt.tags.SwtDialog.show(SwtDialog.java:389)
at org.pentaho.ui.xul.swt.tags.SwtDialog.show(SwtDialog.java:318)
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:59)
at org.pentaho.di.ui.spoon.delegates.SpoonDBDelegate.editConnection(SpoonDBDelegate.java:87)
at org.pentaho.di.ui.spoon.Spoon.doubleClickedInTree(Spoon.java:3084)
at org.pentaho.di.ui.spoon.Spoon.doubleClickedInTree(Spoon.java:3019)
at org.pentaho.di.ui.spoon.Spoon.access00(Spoon.java:345)
at org.pentaho.di.ui.spoon.Spoon.widgetDefaultSelected(Spoon.java:6113)
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.pentaho.di.ui.spoon.Spoon.readAndDispatch(Spoon.java:1319)
at org.pentaho.di.ui.spoon.Spoon.waitForDispose(Spoon.java:7939)
at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9190)
at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:654)
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 org.postgresql.Driver)
Invalid connection URL url jdbc:postgresql://localhost:5432/prueba
at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:594)
at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:4697)
at org.pentaho.di.core.database.Database.normalConnect(Database.java:414)
... 45 more
Caused by: java.lang.IllegalArgumentException: Invalid connection URL url jdbc:postgresql://localhost:5432/prueba
at org.mariadb.jdbc.JDBCUrl.parse(JDBCUrl.java:144)
at org.mariadb.jdbc.Driver.connect(Driver.java:95)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:574)
... 47 more
主机名:本地主机
端口:5432
数据库名称:prueba
在JDBC中,DriverManager
会查询所有注册的驱动程序,看他们是否可以使用URL进行连接。如果驱动程序不支持所提供的 URL(例如,因为查询的驱动程序用于 Firebird,而 URL 用于 PostgreSQL),Driver.connect
实现应该 return null :
The driver should return "null" if it realizes it is the wrong kind of driver to connect to the given URL. This will be common, as when the JDBC driver manager is asked to connect to a given URL it passes the URL to each loaded driver in turn.
长话短说,如果您查看堆栈跟踪,您会在底部看到:
Caused by: java.lang.IllegalArgumentException: Invalid connection URL url jdbc:postgresql://localhost:5432/prueba
at org.mariadb.jdbc.JDBCUrl.parse(JDBCUrl.java:144)
at org.mariadb.jdbc.Driver.connect(Driver.java:95)
at java.sql.DriverManager.getConnection(Unknown Source)
换句话说,org.mariadb.jdbc.Driver
行为不当并抛出 java.lang.IllegalArgumentException
而不是 returning null
。这导致 DriverManager
停止尝试其他驱动程序,结果它甚至从未尝试使用 PostgreSQL 驱动程序。
可能的解决方案或解决方法是:
- 从 Pentaho 的类路径中删除 MariaDB 驱动程序
- 检查是否有更新版本的 MariaDB 驱动程序修复了此错误
- 检查是否有 旧 版本的 MariaDB 驱动程序没有此错误
快速搜索显示这是错误 CONJ-167,应在尚未发布的 MariaDB Connector/J 1.2.2 中修复。
我有驱动 postgresql-9.3-1103.jdbc3.jar 文件夹 ...data-integration\lib 并且也配置了 classpah
我安装了 postgresql 9.3,并且在 postgresql 中安装了 db prueba 但这是错误
Error connecting to database [PostgresDB] : org.pentaho.di.core.exception.KettleDatabaseException:
Error occurred while trying to connect to the database
Error connecting to database: (using class org.postgresql.Driver)
Invalid connection URL url jdbc:postgresql://localhost:5432/prueba
org.pentaho.di.core.exception.KettleDatabaseException:
Error occurred while trying to connect to the database
Error connecting to database: (using class org.postgresql.Driver)
Invalid connection URL url jdbc:postgresql://localhost:5432/prueba
at org.pentaho.di.core.database.Database.normalConnect(Database.java:428)
at org.pentaho.di.core.database.Database.connect(Database.java:358)
at org.pentaho.di.core.database.Database.connect(Database.java:311)
at org.pentaho.di.core.database.Database.connect(Database.java:301)
at org.pentaho.di.core.database.DatabaseFactory.getConnectionTestReport(DatabaseFactory.java:80)
at org.pentaho.di.core.database.DatabaseMeta.testConnection(DatabaseMeta.java:2686)
at org.pentaho.ui.database.event.DataHandler.testDatabaseConnection(DataHandler.java:546)
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.access0(SwtButton.java:43)
at org.pentaho.ui.xul.swt.tags.SwtButton.widgetSelected(SwtButton.java:138)
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.ui.xul.swt.tags.SwtDialog.show(SwtDialog.java:389)
at org.pentaho.ui.xul.swt.tags.SwtDialog.show(SwtDialog.java:318)
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:59)
at org.pentaho.di.ui.spoon.delegates.SpoonDBDelegate.editConnection(SpoonDBDelegate.java:87)
at org.pentaho.di.ui.spoon.Spoon.doubleClickedInTree(Spoon.java:3084)
at org.pentaho.di.ui.spoon.Spoon.doubleClickedInTree(Spoon.java:3019)
at org.pentaho.di.ui.spoon.Spoon.access00(Spoon.java:345)
at org.pentaho.di.ui.spoon.Spoon.widgetDefaultSelected(Spoon.java:6113)
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.pentaho.di.ui.spoon.Spoon.readAndDispatch(Spoon.java:1319)
at org.pentaho.di.ui.spoon.Spoon.waitForDispose(Spoon.java:7939)
at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9190)
at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:654)
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 org.postgresql.Driver)
Invalid connection URL url jdbc:postgresql://localhost:5432/prueba
at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:594)
at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:4697)
at org.pentaho.di.core.database.Database.normalConnect(Database.java:414)
... 45 more
Caused by: java.lang.IllegalArgumentException: Invalid connection URL url jdbc:postgresql://localhost:5432/prueba
at org.mariadb.jdbc.JDBCUrl.parse(JDBCUrl.java:144)
at org.mariadb.jdbc.Driver.connect(Driver.java:95)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:574)
... 47 more
主机名:本地主机 端口:5432 数据库名称:prueba
在JDBC中,DriverManager
会查询所有注册的驱动程序,看他们是否可以使用URL进行连接。如果驱动程序不支持所提供的 URL(例如,因为查询的驱动程序用于 Firebird,而 URL 用于 PostgreSQL),Driver.connect
实现应该 return null :
The driver should return "null" if it realizes it is the wrong kind of driver to connect to the given URL. This will be common, as when the JDBC driver manager is asked to connect to a given URL it passes the URL to each loaded driver in turn.
长话短说,如果您查看堆栈跟踪,您会在底部看到:
Caused by: java.lang.IllegalArgumentException: Invalid connection URL url jdbc:postgresql://localhost:5432/prueba
at org.mariadb.jdbc.JDBCUrl.parse(JDBCUrl.java:144)
at org.mariadb.jdbc.Driver.connect(Driver.java:95)
at java.sql.DriverManager.getConnection(Unknown Source)
换句话说,org.mariadb.jdbc.Driver
行为不当并抛出 java.lang.IllegalArgumentException
而不是 returning null
。这导致 DriverManager
停止尝试其他驱动程序,结果它甚至从未尝试使用 PostgreSQL 驱动程序。
可能的解决方案或解决方法是:
- 从 Pentaho 的类路径中删除 MariaDB 驱动程序
- 检查是否有更新版本的 MariaDB 驱动程序修复了此错误
- 检查是否有 旧 版本的 MariaDB 驱动程序没有此错误
快速搜索显示这是错误 CONJ-167,应在尚未发布的 MariaDB Connector/J 1.2.2 中修复。