概述
问题:
使用如下配置文件,logstash无法连接数据库:
input {
jdbc {
jdbc_driver_library => "../connector/mysql-connector-java-5.0.8.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://10.219.56.141:3306/shopfloor"
jdbc_user => "user"
jdbc_password => "password"
schedule => "* * * * *"
clean_run => "false"
statement_filepath => "SQLcr1top35.sql"
jdbc_paging_enabled => "true"
jdbc_page_size => "100000"
use_column_value => true
tracking_column => "tracking"
tracking_column_type => "numeric"
last_run_metadata_path => "metacr1top35"
type => "cr1top35"
add_field => {"calmodule" => "op30_5"}
}
}
错误提示信息截取:
#<Sequel::DatabaseConnectionError:
Java::JavaSql::SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required>,
:backtrace=>
["com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(com/mysql/cj/jdbc/exceptions/SQLError.java:108)",
"com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(com/mysql/cj/jdbc/exceptions/SQLError.java:95)",
"com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(com/mysql/cj/jdbc/exceptions/SQLError.java:87)",
"com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(com/mysql/cj/jdbc/exceptions/SQLError.java:61)",
分析:
很奇怪的是,我用的mysql jdbc连接方式是"com.mysql.jdbc.Driver",为什么这里会出现“com.mysql.cj.jdbc”的提示呢?于是想到了我之前曾经将mysql-connector-java-8.0.11.jar放在LOGSTASH/logstash-core/lib/jars里面,而com.mysql.cj.jdbc是8.0.11推荐使用的模式。
尝试将LOGSTASH/logstash-core/lib/jars里面的mysql-connector-java-8.0.11.jar删除,问题解决。
结论:
使用JDBC插件的时候,Logstash首先在LOGSTASH/logstash-core/lib/jars里面查找连接Jar包,如果找到,直接就用这个Jar包进行连接,即便你在.conf文件里指定了jdbc的路径,也会被忽略。
最后
以上就是清秀斑马为你收集整理的Logstash 使用JDBC的注意事项的全部内容,希望文章能够帮你解决Logstash 使用JDBC的注意事项所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复