ETL-kettle報錯--org.gjt.mm.mysql.Driver


 

 細節:

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

Error connecting to database: (using class org.gjt.mm.mysql.Driver)
Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.


    at org.pentaho.di.core.database.Database.normalConnect(Database.java:472)
    at org.pentaho.di.core.database.Database.connect(Database.java:370)
    at org.pentaho.di.core.database.Database.connect(Database.java:341)
    at org.pentaho.di.core.database.Database.connect(Database.java:331)
    at org.pentaho.di.ui.trans.steps.update.UpdateDialog.getSchemaNames(UpdateDialog.java:912)
    at org.pentaho.di.ui.trans.steps.update.UpdateDialog.access$1200(UpdateDialog.java:76)
    at org.pentaho.di.ui.trans.steps.update.UpdateDialog$15.widgetSelected(UpdateDialog.java:543)
    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.trans.steps.update.UpdateDialog.open(UpdateDialog.java:561)
    at org.pentaho.di.ui.spoon.delegates.SpoonStepsDelegate.editStep(SpoonStepsDelegate.java:120)
    at org.pentaho.di.ui.spoon.Spoon.editStep(Spoon.java:8662)
    at org.pentaho.di.ui.spoon.trans.TransGraph.editStep(TransGraph.java:3293)
    at org.pentaho.di.ui.spoon.trans.TransGraph.mouseDoubleClick(TransGraph.java:785)
    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.trans.steps.update.UpdateDialog.open(UpdateDialog.java:561)
    at org.pentaho.di.ui.spoon.delegates.SpoonStepsDelegate.editStep(SpoonStepsDelegate.java:120)
    at org.pentaho.di.ui.spoon.Spoon.editStep(Spoon.java:8662)
    at org.pentaho.di.ui.spoon.trans.TransGraph.editStep(TransGraph.java:3293)
    at org.pentaho.di.ui.spoon.trans.TransGraph.mouseDoubleClick(TransGraph.java:785)
    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:1381)
    at org.pentaho.di.ui.spoon.Spoon.waitForDispose(Spoon.java:7817)
    at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9179)
    at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:707)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    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.gjt.mm.mysql.Driver)
Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

    at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:583)
    at org.pentaho.di.core.database.Database.normalConnect(Database.java:456)
    ... 43 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:344)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2333)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2370)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2154)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:792)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:208)
    at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:567)
    ... 44 more
Caused by: java.net.UnknownHostException: 印度rsrush-香港從庫
    at java.net.InetAddress.getAllByName0(InetAddress.java:1280)
    at java.net.InetAddress.getAllByName(InetAddress.java:1192)
    at java.net.InetAddress.getAllByName(InetAddress.java:1126)
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:247)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:294)
    ... 59 more
報錯細節

解釋:

org.gjt.mm.mysql.Driver 是早期的驅動名稱,后來就改名為com.mysql.jdbc.Driver,現在一般都推薦使用com.mysql.jdbc.Driver。

在最新版 本的mysql jdbc驅動中,為了保持對老版本的兼容,仍然保留了org.gjt.mm.mysql.Driver,但是實際上 org.gjt.mm.mysql.Driver中調用了com.mysql.jdbc.Driver,因此現在這兩個驅動沒有什么區別。

其他說法:

org.gjt.mm.mysql.Driver是當時最好的MySQL?

JDBC,但不是MySQL公司的,然后MySQL將MM的JDBC驅動 收為官方的JDBC驅動,所以將驅動的package也該了,但還保留了org.gjt.mm.mysql.Driver這個路徑的引用,也就是你使用新 版的JDBC驅動時還可以通過這個來引用,你打開下載的新版JDBC驅動的jar文件可以看到,只有一個文件的目錄是org.gjt.mm.mysql, 就是為了兼容而設計的。

源碼查看:org.gjt.mm.mysql.Driver中的除打包之外的代碼如下

public class Driver extends com.mysql.jdbc.Driver {
    // ~ Constructors
   
    public Driver() throws SQLException {
        super();
    }
}
所以這個Driver繼承了com.mysql.jdbc.Driver並且直接使用了它的構造方法,並無其他修改,所以二者完全一樣,並無區別,至於什么歷史原因都不重要了,反正二者一樣即可
為和oracle等驅動樣式一樣,所以我選擇寫com.mysql.jdbc.Driver.

解決方法:安裝Mysql驅動。

1. Mysql官網下載對應驅動;

  https://dev.mysql.com/downloads/file/?id=468318%20

2. 將驅動放在如下位置:

  1. \pdi-ce-7.1.0.0-12\data-integration\lib

  2. \pdi-ce-7.1.0.0-12\data-integration\libswt\win64:(64位系統)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM