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

Pantaho MySQL 8 connection error Driver class 'org.gjt.mm.mysql.Driver' could not be found

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

Driver class 'org.gjt.mm.mysql.Driver' could not be found, make sure the 'MySQL' driver (jar file) is installed.

我确实花了很多时间调试,最后得出两点,我希望这可以节省其他人在类似情况下的时间。

原因org.pentaho.di.core.database.MySQLDatabaseMeta中有hardcodedjdbc驱动器名,而且总是returnsorg.gjt.mm.mysql.Driver 已删除,应使用名称为 com.mysql.jdbc.Drivercom.mysql.cj.jdbc.Driver 的新 Driver

解决方法以下任何一项都可以解决。

  1. 继续使用旧的 jdbc jar。
  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";
    }   }
    
  3. 使用Generic database connection,然后可以自己指定驱动class。 (基于@Cyrus 评论。)

Pentaho open 错误参考。

MySQL 版本 8 的驱动程序更改了 class 名称。因此,您必须将其设置为通用连接,并使用 com.mysql.jdbc.Driver 作为 class。

我已通过将 mysql-connector-java-5.1.42-bin.jar 替换为 mysql-connector-java-5.1.44.jar

来解决问题

能否请您尝试将两个 jar 添加到

data-integration/lib

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

经过测试,现在可以正常使用了。

我当时使用的是 pdi 9.1,为了消除这个错误,我所做的就是将这两个 jar 文件复制到 data-integration\lib:

mysql-连接器-java-5.1.49.jar
mysql-连接器-java-5.1.49-bin.jar

zip文件夹的link在上面的评论中提到了

重启你的勺子! 就是这样。

我只是为了使用 Pentaho 版本 9.1 - 9.1.0.0-324 和 mysql-connector-java-8.0.25

1- 确保 Pentaho 不是 运行.

2- 在下面的 link 下载 mysql 连接器。(https://mvnrepository.com/artifact/mysql/mysql-connector-java)

3- 复制 .​​jar 文件 (mysql-connector-java-8.0.25.jar) 并将其粘贴到您的 Lib 文件夹中:

示例:C:....\pentaho-data-integration\lib

4- 执行 Pentaho (Spoon.bat)