【问题标题】:Error in jdbc conection from Informix using Logstash使用 Logstash 从 Informix 连接 jdbc 时出错
【发布时间】:2021-03-01 15:15:36
【问题描述】:

我正在尝试使用 Logstash 从我的 Informix 表中获取数据,但是 Locale 出现错误,连接拒绝如下:

" 无法连接到数据库。尝试了 1 次 {:error_message=>"Java::JavaSql::SQLException: Locale not supported."} "

我不知道在我的“.conf”存档中是否有一种方法可以指示要在连接中使用的语言环境,或者是否可以将其放入其他配置存档中。我尝试了许多不同的选择,但没有结果。我拥有的有关 Informix 的一些信息是 CLIENT_LOCALE、DB_LOCALE 和 DBLANG,但我不知道在哪里设置这些值。 我坚持这一点。 欢迎任何帮助。 谢谢。

【问题讨论】:

    标签: locale informix logstash-configuration


    【解决方案1】:

    Logstash 有一个输入配置文件。你应该有一个 jdbc 的输入。

    jdbc {
      jdbc_driver_library => "ifxjdbc.jar"
      jdbc_driver_class => "com.informix.jdbc.IfxDriver"
      jdbc_connection_string => "jdbc:informix-sqli://localhost:9088/mydb"
      jdbc_user => "informix"
      parameters => { "favorite_artist" => "Beethoven" }
      schedule => "* * * * *"
      statement => "SELECT * from songs where artist = :favorite_artist"
    }
    

    如果你将你的语言环境变量附加到这个连接字符串,像这样

    jdbc_connection_string => "jdbc:informix-sqli://localhost:9088/mydb:DB_LOCALE=en_us.utf8;CLIENT_LOCALE=en_us.utf8"
    

    它应该将它们传递给 JDBC 驱动程序。您需要检查在驱动程序 URL 中设置数据库所需的语言环境。

    【讨论】:

    • 感谢 Brian,Informix 具有以下值:CLIENT_LOCALE=en_us.8859-1, DB_LOCALE=en_us.cp1252, DBLANG=en_us.cp1252 所以我的连接看起来像这样:jdbc_connection_string => "jdbc:informix- sqli://localhost:9088/mydb:DB_LOCALE=en_us.cp1252;CLIENT_LOCALE=en_us.8859-1" 但仍然出现同样的错误:无法连接到数据库。 "尝试了 1 次 {:error_message=>"Java::JavaSql::SQLException: 不支持区域设置。"}"
    • 确切的连接是:jdbc_connection_string => "jdbc:informix-sqli://host:port/mydb:informixserver=myinformixserver;DB_LOCALE=en_us.cp1252;CLIENT_LOCALE=en_us.8859-1"跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 2016-12-27
    • 2021-09-13
    • 1970-01-01
    相关资源
    最近更新 更多