org.postgresql.util.PSQLException:尽管 jdbc uri 中的 ssl=false,但“服务器不支持 SSL”
Posted
技术标签:
【中文标题】org.postgresql.util.PSQLException:尽管 jdbc uri 中的 ssl=false,但“服务器不支持 SSL”【英文标题】:org.postgresql.util.PSQLException: "The server does not support SSL" despite ssl=false in jdbc uri 【发布时间】:2016-08-17 18:10:22 【问题描述】:我在使用 jdbc 访问 postgres 数据库时遇到以下错误:
org.postgresql.util.PSQLException: "The server does not support SSL"
尽管 jdbc uri 中的 ssl=false
(真实凭据被加扰)
2016-08-17T09:58:11.45-0700 [App/0] ERR INFO: jdbc uri is jdbc:postgresql://11.626.12.4:6465/rx160w03801440by3lk816f60n0g29yz1?user=j8stf8u7w21rd715sr0417q10uc001385&password=54995711s1304gd60847zt4426hq6331&ssl=false
2016-08-17T09:58:11.48-0700 [App/0] ERR Exception in thread "main" org.postgresql.util.PSQLException: The server does not support SSL., compiling:(/tmp/form-init5003717642292946239.clj:1:73)
2016-08-17T09:58:11.48-0700 [App/0] ERR at clojure.lang.Compiler.load(Compiler.java:7239)
2016-08-17T09:58:11.48-0700 [App/0] ERR at clojure.lang.Compiler.loadFile(Compiler.java:7165)
2016-08-17T09:58:11.48-0700 [App/0] ERR at clojure.main$load_script.invoke(main.clj:275)
2016-08-17T09:58:11.48-0700 [App/0] ERR at clojure.main$init_opt.invoke(main.clj:280)
2016-08-17T09:58:11.48-0700 [App/0] ERR at clojure.main$initialize.invoke(main.clj:308)
2016-08-17T09:58:11.48-0700 [App/0] ERR at clojure.main$null_opt.invoke(main.clj:343)
2016-08-17T09:58:11.48-0700 [App/0] ERR at clojure.main$main.doInvoke(main.clj:421)
2016-08-17T09:58:11.48-0700 [App/0] ERR at clojure.lang.RestFn.invoke(RestFn.java:421)
2016-08-17T09:58:11.48-0700 [App/0] ERR at clojure.lang.Var.invoke(Var.java:383)
2016-08-17T09:58:11.48-0700 [App/0] ERR at clojure.lang.AFn.applyToHelper(AFn.java:156)
2016-08-17T09:58:11.48-0700 [App/0] ERR at clojure.lang.Var.applyTo(Var.java:700)
2016-08-17T09:58:11.48-0700 [App/0] ERR at clojure.main.main(main.java:37)
2016-08-17T09:58:11.49-0700 [App/0] ERR Caused by: org.postgresql.util.PSQLException: The server does not support SSL.
2016-08-17T09:58:11.49-0700 [App/0] ERR at org.postgresql.core.v3.ConnectionFactoryImpl.enableSSL(ConnectionFactoryImpl.java:200)
2016-08-17T09:58:11.49-0700 [App/0] ERR at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:80)
2016-08-17T09:58:11.49-0700 [App/0] ERR at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)
2016-08-17T09:58:11.49-0700 [App/0] ERR at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:125)
2016-08-17T09:58:11.49-0700 [App/0] ERR at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30)
2016-08-17T09:58:11.49-0700 [App/0] ERR at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:22)
2016-08-17T09:58:11.49-0700 [App/0] ERR at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:30)
2016-08-17T09:58:11.49-0700 [App/0] ERR at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24)
2016-08-17T09:58:11.49-0700 [App/0] ERR at org.postgresql.Driver.makeConnection(Driver.java:393)
2016-08-17T09:58:11.49-0700 [App/0] ERR at org.postgresql.Driver.connect(Driver.java:267)
2016-08-17T09:58:11.49-0700 [App/0] ERR at java.sql.DriverManager.getConnection(DriverManager.java:664)
2016-08-17T09:58:11.49-0700 [App/0] ERR at java.sql.DriverManager.getConnection(DriverManager.java:208)
2016-08-17T09:58:11.49-0700 [App/0] ERR at clojure.java.jdbc$get_connection.invoke(jdbc.clj:272)
2016-08-17T09:58:11.49-0700 [App/0] ERR at clojure.java.jdbc$get_connection.invoke(jdbc.clj:256)
2016-08-17T09:58:11.49-0700 [App/0] ERR at clojure.java.jdbc$get_connection.invoke(jdbc.clj:259)
2016-08-17T09:58:11.49-0700 [App/0] ERR at notification_service.db$db_ensure_tables_exist.invoke(db.clj:8)
2016-08-17T09:58:11.49-0700 [App/0] ERR at notification_service.handler$_main.doInvoke(handler.clj:102)
2016-08-17T09:58:11.49-0700 [App/0] ERR at clojure.lang.RestFn.invoke(RestFn.java:397)
2016-08-17T09:58:11.49-0700 [App/0] ERR at clojure.lang.Var.invoke(Var.java:375)
2016-08-17T09:58:11.49-0700 [App/0] ERR at user$eval5.invoke(form-init5003717642292946239.clj:1)
2016-08-17T09:58:11.49-0700 [App/0] ERR at clojure.lang.Compiler.eval(Compiler.java:6782)
2016-08-17T09:58:11.49-0700 [App/0] ERR at clojure.lang.Compiler.eval(Compiler.java:6772)
2016-08-17T09:58:11.49-0700 [App/0] ERR at clojure.lang.Compiler.load(Compiler.java:7227)
2016-08-17T09:58:11.49-0700 [App/0] ERR ... 11 more
我正在使用 clojure.java.jdbc:
(clojure.java.jdbc/with-db-connection
[conn jdbc-uri]
(log/infof "jdbc uri %s" jdbc-uri)
(clojure.java.jdbc/execute!
conn
["some sql here"]))
我在我的project.clj
中使用[postgresql "9.1-901.jdbc4"]
。
当 jdbc uri 指定 ssl=false 时,为什么驱动程序会抱怨缺少 ssl?
【问题讨论】:
【参考方案1】:根据PostgreSQL JDBC documentation,“[ssl 参数] 的存在指定了 SSL 连接”。由于默认值为off
,因此您应该从jdb-uri
中省略ssl=
参数以在不使用SSL 的情况下进行连接。
【讨论】:
我没有使用任何 ssl 参数,但几个小时后我也得到了这个异常。以上是关于org.postgresql.util.PSQLException:尽管 jdbc uri 中的 ssl=false,但“服务器不支持 SSL”的主要内容,如果未能解决你的问题,请参考以下文章