当前位置: 首页 > 知识库问答 >
问题:

如何使用JDBC驱动程序和SSL连接连接到Sybase ASE

韩季
2023-03-14

我试图建立一个SSL连接到赛贝斯ASE 15.7使用JDBC驱动程序没有运气。我尝试了以下选项:

>

  • 使用JTDS 1.25驱动程序(jtds-1.2.5.jar)

    使用以下连接字符串:jdbc: jtds: sybase://host: port;数据库名=dbname; ssl=请求

    我收到网络错误IOException:连接被拒绝

    使用jconnect4(jconn4.jar)

    使用以下连接字符串:

    jdbc:sybase:Tds:host:port/dbname?ENABLE_SSL=true

    我得到了java.sql.SQLExc0019: JZ00L:登录失败。检查链接到此异常的SQLWarnings的原因...java.sql.SQLExc0019: I/O错误: DB服务器关闭连接。

    我检查了Sybase日志,发现以下错误:

    内核SSL或加密错误消息:“SSL握手失败。根错误:错误:140760FC:SSL例程:SSL23_GET_CLIENT_HELLO:unknown protocol'

    看起来Sybase服务器需要SSL连接,但java客户端仍然不使用SSL(尽管connection string属性标记为SSL=true)。

    尝试搜索赛贝斯留档没有太多的运气,既没有这个错误,也没有SSL与JConnect。

    任何答案都将不胜感激-我对驱动程序和配置的类型很灵活。

    谢啦


  • 共有2个答案

    郎羽
    2023-03-14

    虽然zuckermanori的回答提供了一些关键细节,但在下面添加了更多需要执行的步骤-

    1. 提供正确的jdbc jar,它在创建spark会话时支持ssl。我之前使用的是jconn3-6.0.0。不支持ssl的jar。后来,我使用了jconnect-16.0_SP02。这个罐子很好用。传递驱动程序jar的pyspark命令示例如下-

    罐子 /path/to/your/jdbc/driver/jar

    --火花号。驾驶员extraJavaOptions=“-Djavax.net.ssl.trustStore=/path/to/trustStore-Djavax.net.ssl.trustStorePassword=您的信任库密码”​ ​ 3.使用右字符串在选项中加载驱动程序。早些时候我用的是'com。赛贝斯。jdbc4。jdbc。“SybDriver”不起作用。然后下面为我工作了。选项(“driver”、“com.sybase.jdbc4.jdbc.SybDriver”)​ 4.根据驱动程序使用正确的连接字符串提供额外的ssl选项。例如-。选项(“url”、“jdbc:sybase:Tds:host_name:ssl_port/database_name”?启用_ssl=true

    .选项(“ssl”,True)。选项(“sslmode”、“require”)

    总之,pyspark命令应该是这样的(如果您使用的是Thread模式,那么所有节点上都应该可以访问truststore。下面是spark local模式的示例)-

    pyspark--jars/path/to/your/jdbc/driver/jar--conf spark。驾驶员extraJavaOptions=“-Djavax.net.ssl.trustStore=/path/to/trustStore-Djavax.net.ssl.trustStorePassword=您的信任库密码”​ --本地大师

    这就是你的jdbc读数-

    火花阅读格式(“jdbc”)。选项(“url”、“jdbc:sybase:Tds:host_name:ssl_port/database_name”?启用_ssl=true

    劳华灿
    2023-03-14

    经过大量调查,我找到了解决办法。2.事实上。

    1. 使用信任所有证书JDBC连接字符串参数:如果你不介意信任所有证书(只有当你完全信任你工作的网络时才这样做,尤其是不信任公共互联网上的任何东西),你可以添加一个连接字符串,指示SSLSocketFactory创建信任所有证书的连接。连接字符串如下:jdbc: sybase: tds: host: port/dbname?ENABLE_SSL=真

     类似资料:
    • 问题内容: 我目前正在为大学的一个班级做项目。我正在学习有关连接和操作数据库的信息,我们正在使用Microsoft .accdb文件。 这是我到目前为止所拥有的。 当寻找“ sun.jdbc.odbc.JdbcOdbcDriver”时,我得到以下输出。 似乎很容易解决。看来我想念司机或类似的东西。但是,我很难找到解决方法。JDK随附驱动程序吗?我需要单独下载吗?是否取决于我的操作系统?(Mac O

    • 我使用JBoss作为7.1.1.final作为我的应用程序服务器。 我已经在JBoss社区用户论坛上发布了我的问题:question-here jboss-as-cmt war工作得很好,即我能够将客户添加到发票中。我可以psql进入数据库引擎,我可以看到所有的记录。我唯一的问题是我不能使用h2console webapp进入我创建的jboss-as-cmt postgres数据库。 我使用:“o

    • 我需要使用sqldeveloper连接到db2 7.1 as400系统,使用jdbc驱动程序连接到oracle data integrator。 我下载了db2cc.jar、db2cc_license_cisuz.jar..jt400.jar、db2java.jar。 连接显示成功,并且似乎已连接,但在运行任何查询或浏览任何表时,每次我得到以下错误:

    • 我正在尝试使用本教程连接Oracle数据库。当我使用命令行:java-cp c:\jdbc-test\ojdbc6.jar;c:\jdbc-test OracleJDBC我已经将ojdbc6.jar与OracleJDBC.java放在同一个文件夹中。现在我需要在Eclipse上运行它,但它给我一个错误: 是因为OJDBC6.jar位置吗?

    • 我们所面临的问题已在许多文件中得到充分证明https://stackoverflow.com/questions/34189756/warning-about-ssl-connection-when-connecting-to-mysql-database. 从过渡到时,我们就开始面临这个问题。建议的修复方法对我们有效,但我们有一个问题,我们不想更新Java源文件以进行更改,例如从 到 正如在ht

    • 我使用的是Java8、Spark 2.1.1、Ignite2.5和BoneCP 0.8.0 结果出现以下异常: 提交脚本如下所示: 当使用“本地”Spark实例时,它使用think JDBC驱动程序连接到Ignite。有什么想法吗?