Pentaho DI Connection驱动程序问题

时间:2017-10-10 07:52:49

标签: sql-server jdbc pentaho-spoon

我在向Pentaho Data Intergration添加MSSQL SERVER连接时遇到问题。

我尝试了以下内容:

  • 我已经下载了最新的jdbc驱动程序(sqljdbc42)并移动了它们 到lib文件夹
  • 我在SQL SERVER中创建了一个新用户,并赋予它所有权利......没有帮助。
  • 非常确定用户名/密码和登录设置
  • 多次重新安装pentaho,重新安装了jdbc驱动程序

我有一台Mac,但在平行线上使用Windows,我在这个环境中工作。

这是我得到的错误:

  

连接数据库时出错[Velo]   :org.pentaho.di.core.exception.KettleDatabaseException:错误   尝试连接数据库时发生了

     

连接数据库时出错:(使用类   com.microsoft.sqlserver.jdbc.SQLServerDriver)用户登录失败   ' DBklaartje&#39 ;. ClientConnectionId:33c3d571-4128-4c2d-b5a6-1290e06438e8

     

org.pentaho.di.core.exception.KettleDatabaseException:发生错误   在尝试连接数据库时

     

连接数据库时出错:(使用类   com.microsoft.sqlserver.jdbc.SQLServerDriver)用户登录失败   ' DBklaartje&#39 ;. ClientConnectionId:33c3d571-4128-4c2d-b5a6-1290e06438e8

     

在   org.pentaho.di.core.database.Database.normalConnect(Database.java:472)     在org.pentaho.di.core.database.Database.connect(Database.java:370)     在org.pentaho.di.core.database.Database.connect(Database.java:341)     在org.pentaho.di.core.database.Database.connect(Database.java:331)     在   org.pentaho.di.core.database.DatabaseFactory.getConnectionTestReport(DatabaseFactory.java:80)     在   org.pentaho.di.core.database.DatabaseMeta.testConnection(DatabaseMeta.java:2783)     在   org.pentaho.ui.database.event.DataHandler.testDatabaseConnection(DataHandler.java:597)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)at   sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)at   java.lang.reflect.Method.invoke(未知来源)at   org.pentaho.ui.xul.impl.AbstractXulDomContainer.invoke(AbstractXulDomContainer.java:313)     在   org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:157)     在   org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:141)     在   org.pentaho.ui.xul.swt.tags.SwtButton.access $ 500(SwtButton.java:43)     在   org.pentaho.ui.xul.swt.tags.SwtButton $ 4.widgetSelected(SwtButton.java:137)     在org.eclipse.swt.widgets.TypedListener.handleEvent(未知来源)     在org.eclipse.swt.widgets.EventTable.sendEvent(未知来源)at   org.eclipse.swt.widgets.Display.sendEvent(未知来源)at   org.eclipse.swt.widgets.Widget.sendEvent(未知来源)at   org.eclipse.swt.widgets.Display.runDeferredEvents(未知来源)at   org.eclipse.swt.widgets.Display.readAndDispatch(未知来源)at   org.eclipse.jface.window.Window.runEventLoop(Window.java:820)at at   org.eclipse.jface.window.Window.open(Window.java:796)at   org.pentaho.di.ui.xul.KettleDialog.show(KettleDialog.java:80)at   org.pentaho.di.ui.xul.KettleDialog.show(KettleDialog.java:47)at at   org.pentaho.di.ui.core.database.dialog.XulDatabaseDialog.open(XulDatabaseDialog.java:116)     在   org.pentaho.di.ui.core.database.dialog.DatabaseDialog.open(DatabaseDialog.java:60)     在   org.pentaho.di.ui.repository.repositoryexplorer.controllers.ConnectionsController.editConnection(ConnectionsController.java:363)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)at   sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)at   java.lang.reflect.Method.invoke(未知来源)at   org.pentaho.ui.xul.impl.AbstractXulDomContainer.invoke(AbstractXulDomContainer.java:313)     在   org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:157)     在   org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:141)     在   org.pentaho.ui.xul.swt.tags.SwtButton.access $ 300(SwtButton.java:43)     在   org.pentaho.ui.xul.swt.tags.SwtButton $ 2.mouseUp(SwtButton.java:103)     在org.eclipse.swt.widgets.TypedListener.handleEvent(未知来源)     在org.eclipse.swt.widgets.EventTable.sendEvent(未知来源)at   org.eclipse.swt.widgets.Display.sendEvent(未知来源)at   org.eclipse.swt.widgets.Widget.sendEvent(未知来源)at   org.eclipse.swt.widgets.Display.runDeferredEvents(未知来源)at   org.eclipse.swt.widgets.Display.readAndDispatch(未知来源)at   org.eclipse.jface.window.Window.runEventLoop(Window.java:820)at at   org.eclipse.jface.window.Window.open(Window.java:796)at   org.pentaho.di.ui.xul.KettleDialog.show(KettleDialog.java:80)at   org.pentaho.di.ui.xul.KettleDialog.show(KettleDialog.java:47)at at   org.pentaho.di.ui.repository.repositoryexplorer.RepositoryExplorer.show(RepositoryExplorer.java:146)     在org.pentaho.di.ui.spoon.Spoon $ 24 $ 1.run(Spoon.java:4045)at at   org.eclipse.swt.widgets.RunnableLock.run(未知来源)at   org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(未知来源)     在org.eclipse.swt.widgets.Display.runAsyncMessages(未知来源)     在org.eclipse.swt.widgets.Display.readAndDispatch(未知来源)     在org.pentaho.di.ui.spoon.Spoon.readAndDispatch(Spoon.java:1366)at   org.pentaho.di.ui.spoon.Spoon.waitForDispose(Spoon.java:8022)at at   org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9277)at at   org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:692)at   sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)at   sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)at   java.lang.reflect.Method.invoke(未知来源)at   org.pentaho.commons.launcher.Launcher.main(Launcher.java:92)引起的   by:org.pentaho.di.core.exception.KettleDatabaseException:错误   连接数据库:(使用类   com.microsoft.sqlserver.jdbc.SQLServerDriver)用户登录失败   ' DBklaartje&#39 ;. ClientConnectionId:33c3d571-4128-4c2d-b5a6-1290e06438e8

     

在   org.pentaho.di.core.database.Database.connectUsingClass(Database.java:585)     在   org.pentaho.di.core.database.Database.normalConnect(Database.java:456)     ... 62更多引起:   com.microsoft.sqlserver.jdbc.SQLServerException:用户登录失败   ' DBklaartje&#39 ;. ClientConnectionId:33c3d571-4128-4c2d-b5a6-1290e06438e8     在   com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:217)     在   com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:279)     在com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:99)     在   com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4346)     在   com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3160)     在   com.microsoft.sqlserver.jdbc.SQLServerConnection.access $ 100(SQLServerConnection.java:43)     在   com.microsoft.sqlserver.jdbc.SQLServerConnection $ LogonCommand.doExecute(SQLServerConnection.java:3123)     在   com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7505)     在   com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2445)     在   com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1981)     在   com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628)     在   com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1459)     在   com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773)     在   com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168)     在java.sql.DriverManager.getConnection(未知来源)at   java.sql.DriverManager.getConnection(未知来源)at   org.pentaho.di.core.database.Database.connectUsingClass(Database.java:561)     ... 63更多

     

主机名:DESKTOP-LM88EPQ端口:1433数据库名称   :腭

2 个答案:

答案 0 :(得分:1)

显然,此问题是由于驱动程序的身份验证问题引起的。如果您下载了驱动程序(sqljdbc),还要将文件'sqljbdc_auth.dll'复制到%PENTAHO_HOME%\ design-tools \ data-integration \ libswt \ win64

这将确保您的用户和登录获得适当的授权。

答案 1 :(得分:0)

在数据库连接定义上,在“测试”和“浏览”按钮之间,您有一个功能列表,它为您提供PDI用于该连接的所有参数。

检查第20行的驱动程序类(有时你的类路径上有多个驱动程序类)。

然后在第21行,在SQL-Developer或同等文件中删除网址。

您也可以编写自己的java类;用你正在使用的walue替换驱动程序,网址,用户名和密码;编译它;运行;它告诉你出了什么问题。

import java.sql.DriverManager;
public class TestConnection {
    public static void main(String[] args) throws Exception{
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        DriverManager.getConnection("url", "username", "password");
        System.out.println("Ok");
    }    
}