0

我正在尝试跟随一个课程示例,但在常见问题解答中没有得到任何帮助,尝试了我在谷歌和这里可以找到的所有内容。

我没有使用 docker,只是在我的本地机器(Ubunutu 18.04)上运行这个演示,弹性搜索和 mysql 都在运行。

当我运行“sudo bin/logstash -f /etc/logstash/conf.d/mysql.conf --path.settings /etc/logstash”时,出现以下错误:com.mysql.jdbc.Driver 未加载。你确定你在 :jdbc_driver_library 中包含了正确的 jdbc 驱动程序吗?驱动程序确实存在并且路径正确。

当我使用 sudo bin/logstash --config.test_and_exit -f /etc/logstash/conf.d/mysql.conf 它返回配置正常。

我正在使用 mysql-connector-java-5.1.47 openjdk 版本“1.8.0_181”OpenJDK 运行时环境(构建 1.8.0_181-8u181-b13-0ubuntu0.18.04.1-b13)OpenJDK 64 位服务器 VM(构建 25.181 -b13,混合模式)

Elasticsearch-6.4.2 Logstash-6.4.2

我的 mysql.conf 是

input {
    jdbc {
        jdbc_connection_string => "jdbc:mysql://localhost:3306/movielens"
        jdbc_user => "grunt"
        jdbc_password => "password"
        jdbc_driver_library => "/home/alarik/mysql-connecter-java-5.1.47/mysql-connector-java-5.1.47-bin.jar"
        jdbc_driver_class => "com.mysql.jdbc.Driver"
        statement => "SELECT * FROM movies"
    }
}

output {
    stdout { codec => json_lines }
    elasticsearch {
        "hosts" => "localhost:9200"
        "index" => "movielens-sql"
        "document_type" => "data"
    }
}
4

1 回答 1

0

我解决了这个问题:

首先检查你的java版本:

root@xxxxxx:/# java -version
openjdk version "1.8.0_181"

如果您使用的是 1.8,那么您应该使用 JDBC42 版本。

如果您使用的是 1.7,那么您应该使用 JDBC41 版本。

如果您使用的是 1.6,那么您应该使用 JDBC43 版本。

mysql设置:

mysql-connector-java-5.1.46.jar

jdbc_driver_library => "//path_to_jar/mysql-connector-java-5.1.46.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
于 2018-11-12T09:07:49.070 回答