【问题标题】:com.mysql.jdbc.Driver not loaded. Are you sure you've included the correct jdbc driver in :jdbc_driver_librarycom.mysql.jdbc.Driver 未加载。你确定你已经在 :jdbc_driver_library 中包含了正确的 jdbc 驱动程序吗?
【发布时间】:2019-11-03 02:09:44
【问题描述】:

我遇到了 java 版本和 mysql-connect-java.jar 与 logstash 的兼容性问题。

谁能告诉我哪个版本的mysql-connect-java.jar和哪个版本的java兼容?

错误:

com.mysql.cj.jdbc.Driver not loaded. Are you sure you've included the correct jdbc driver in :jdbc_driver_library?

我当前的java版本是

openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b03-0ubuntu1.16.04.1-b03)
OpenJDK 64-Bit Server VM (build 25.212-b03, mixed mode)

我尝试过使用下面的 mysql 连接器 jar 文件,但每个都失败了。

mysql-connector-java-8.0.16.jar
mysql-connector-java-8.0.15.jar
mysql-connector-java-6.0.5.jar
mysql-connector-java-5.1.46.jar
mysql-connector-java-5.1.4.jar

Logstash 配置文件是 mysql.conf

input {
    jdbc {
        jdbc_connection_string => "jdbc:mysql://localhost:3306/prbi"
        jdbc_user => "root"
        jdbc_password => ""
        jdbc_driver_library => "mysql-connector-java-8.0.15.jar" #tried above every jar
        jdbc_driver_class => "com.mysql.cj.jdbc.Driver" #tried com.mysql.jdbc.Driver too
        schedule => "* * * * *"
        use_column_value => true
        tracking_column => "%{id}"
        clean_run => true
        statement => "SELECT * from tmp_j_summaryrepor"
    }
}
output {
    elasticsearch {
    hosts => ['http://localhost:9200']
    index => "prsummaryreport"
    document_type => "prsummaryreport"
    document_id => "%{id}" # It is a Primary Key of table
    }
    stdout { codec => json_lines } 
}

【问题讨论】:

  • 在我使用 java 8 的 maven 项目中,我有 mysql-connector-java-5.1.36.jar。试试看它是否有效。
  • @Sahzeb,你知道它记录在哪里吗?哪个版本与哪个jar兼容?
  • @Shahzeb,同样的错误,mysql-connector-java-5.1.36.jar 版本,你能告诉我你的确切java版本吗?
  • 如果您没有在 pom.xml 文件(maven 项目)中指定版本。它由 Maven 在 Spring Boot 中解决。
  • 您的司机在哪里?你试过jdbc_driver_library的完整路径吗?

标签: java mysql logstash elastic-stack


【解决方案1】:

Logstash 无法加载驱动程序,因为它在错误的位置寻找驱动程序,您应该始终指定驱动程序的完整路径,例如:

jdbc_driver_library => "/opt/drivers/mysql-connector-java-8.0.15.jar"

【讨论】:

    【解决方案2】:

    对于 logstash 6.2.x 及更高版本,最好在以下位置添加驱动程序:

    /usr/share/logstash/logstash-core/lib/jars/
    

    宁可保持jdbc_driver_library 为空。许多 elastic.co 论坛也引用了这一点。

    【讨论】:

    • 谢谢!此修复适用于 Mac Mojave 上的 Logstash 7.1
    【解决方案3】:

    就我而言,我将jdbc_driver_library 的完整路径指定为:"/opt/drivers/mysql-connector-java-8.0.15.jar"

    它在重新启动之前工作,然后突然开始抛出错误。

    我发现由于某种原因jdbc.jar 文件已损坏,大小已更改为 0KB。我重新下载了 Jar,将其放入完整路径并重新启动。

    所以您可能只想检查您的 jdbc 文件是否正常。它不应该是 0KB。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-11
      • 1970-01-01
      • 2016-08-18
      • 2012-04-23
      • 1970-01-01
      • 2012-08-24
      • 2016-02-15
      • 2013-07-05
      相关资源
      最近更新 更多