Pantaho MySQL 8连接错误找不到驱动程序类'org.gjt.mm.mysql.Driver'

Red*_*Boy 6 mysql pentaho pentaho-data-integration mysql-8.0

在升级 ETL 脚本以Mysql 5.8进行MySQL8升级时,一旦我将data-integration/libjar 更新为mysql-connector-java-8.0.xx.jar,它就开始出现以下error.

找不到驱动程序类“org.gjt.mm.mysql.Driver”,请确保安装了“MySQL”驱动程序(jar 文件)。

小智 6

您能否尝试将两个罐子添加到

数据集成/lib

5.x正如我所做的那样,我添加了最新的ie罐子mysql-connector-java-5.1.48.jar,我的相同版本是 8.0.19,所以我添加了mysql-connector-java-8.0.19.jar我复制到的位置data-integration/lib

经过测试,现在工作正常。


Red*_*Boy 4

我确实花了很多时间调试并最终得出结论,有两件事,我希望这可以在类似情况下节省其他人的时间。

原因: 中有hardcodedjdbc 驱动程序名称org.pentaho.di.core.database.MySQLDatabaseMeta,并且它总是返回org.gjt.mm.mysql.Driver已删除并Driver带有名称的新名称com.mysql.jdbc.Drivercom.mysql.cj.jdbc.Driver应该使用的名称。

解决方案应采取以下任一措施来解决。

  1. 继续使用旧jdbc罐子。

  2. 修改org.pentaho.di.core.database.MySQLDatabaseMeta下面的方法,编译并放到classes目录下。

    public String getDriverClass()  {
    if (getAccessType()==DatabaseMeta.TYPE_ACCESS_ODBC)
    {
        return "sun.jdbc.odbc.JdbcOdbcDriver";
    }
    else
    {
        return "com.mysql.cj.jdbc.Driver";
    }   }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用Generic数据库连接,然后您可以自己指定驱动程序类。(基于@Cyrus 评论。)

Pentaho开放错误参考。