无法将mysql数据导入elasticsearch

fsi0uk1n  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(701)

我试着跟着一个课程的例子,还没有收到任何帮助,在常见问题解答的,尝试了一切,我可以找到在谷歌和这里。
我没有使用docker只是在我的本地机器(ubunutu18.04)上运行这个演示,elastic search和mysql都在运行。
当我运行“sudo bin/logstash-f/etc/logstash/conf.d/mysql.conf--path.settings/etc/logstash”时,我得到以下错误:com.mysql.jdbc.driver not loaded。您确定在jdbc\u driver\u库中包含了正确的jdbc驱动程序吗?驱动程序确实存在并且路径正确。
当我使用sudo bin/logstash--config.test_and_exit-f/etc/logstash/conf.d/mysql.conf时,它返回configuration ok。
我使用的是mysql-connector-java-5.1.47 openjdk version“1.8.0\u 181”openjdk运行时环境(build 1.8.0\u 181-8u181-b13-0ubuntu0.18.04.1-b13)openjdk 64位服务器vm(build 25.181-b13,混合模式)
elasticsearch-6.4.2日志存储-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"
    }
}
41zrol4v

41zrol4v1#

我解决了这个问题:
首先检查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"

相关问题