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
中有hardcoded
jdbc驱动器名,而且总是returnsorg.gjt.mm.mysql.Driver
已删除,应使用名称为 com.mysql.jdbc.Driver
或 com.mysql.cj.jdbc.Driver
的新 Driver
。
解决方法以下任何一项都可以解决。
- 继续使用旧的
jdbc
jar。
修改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";
} }
使用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)
在将 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
中有hardcoded
jdbc驱动器名,而且总是returnsorg.gjt.mm.mysql.Driver
已删除,应使用名称为 com.mysql.jdbc.Driver
或 com.mysql.cj.jdbc.Driver
的新 Driver
。
解决方法以下任何一项都可以解决。
- 继续使用旧的
jdbc
jar。 修改
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"; } }
使用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)