首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

org.postgresql.util.PSQLException:“服务器不支持SSL”,尽管jdbc uri中有ssl=false。

org.postgresql.util.PSQLException是PostgreSQL数据库驱动程序中的异常类。这个异常表示在与PostgreSQL服务器建立连接时发生了错误。具体地,错误信息是“服务器不支持SSL”,尽管在jdbc uri中设置了ssl=false。

PostgreSQL是一种开源的关系型数据库管理系统,它具有可扩展性、稳定性和安全性等优势。它广泛应用于各种规模的应用程序和企业级系统。

在这种情况下,出现异常的原因可能是PostgreSQL服务器配置了强制要求使用SSL加密连接,而jdbc uri中的ssl=false参数无法覆盖这个设置。为了解决这个问题,可以尝试以下几个步骤:

  1. 确保PostgreSQL服务器已正确配置以支持非SSL连接。可以检查PostgreSQL服务器的配置文件,通常是postgresql.conf文件,查看ssl参数的设置。如果ssl参数被设置为"on"或"require",则服务器要求使用SSL连接。将ssl参数设置为"off"可以禁用SSL连接要求。修改配置文件后,需要重启PostgreSQL服务器使更改生效。
  2. 确保jdbc uri中的ssl参数设置正确。在jdbc连接字符串中,可以使用ssl=false参数来指示不使用SSL连接。确保该参数正确设置,并且没有其他地方覆盖了这个设置。
  3. 检查PostgreSQL数据库驱动程序的版本。有时候,特定版本的驱动程序可能存在与SSL连接相关的问题。尝试升级或降级驱动程序版本,看是否能够解决问题。

如果上述步骤都没有解决问题,可以考虑咨询PostgreSQL社区或寻求专业的技术支持。

腾讯云提供了PostgreSQL数据库的云服务,称为TencentDB for PostgreSQL。它是一种高性能、高可用性的托管式数据库解决方案,适用于各种规模的应用程序和企业级系统。您可以通过以下链接了解更多关于TencentDB for PostgreSQL的信息:https://cloud.tencent.com/product/tcdb-postgresql

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Method org.postgresql.jdbc4.Jdbc4Statement.setQueryTimeout(int) is not yet implemented错误解决

17:25:17:166 [Druid-ConnectionPool-Create-1566729816] ERROR log=c.a.d.p.DruidDataSource,traceId=,userId=,msg=create connection SQLException, url: jdbc:postgresql://…:5432/…, errorCode 0, state 0A000,org.postgresql.util.PSQLException: Method org.postgresql.jdbc4.Jdbc4Statement.setQueryTimeout(int) is not yet implemented. at org.postgresql.Driver.notImplemented(Driver.java:753) at org.postgresql.jdbc2.AbstractJdbc2Statement.setQueryTimeout(AbstractJdbc2Statement.java:656) at com.alibaba.druid.pool.vendor.PGValidConnectionChecker.isValidConnection(PGValidConnectionChecker.java:64) at com.alibaba.druid.pool.DruidAbstractDataSource.validateConnection(DruidAbstractDataSource.java:1346) at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1633) at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2468)

03

JDBC的配置(包括db.properties等)

3.1数据库URL 在连接数据库时必须使用各种与数据库类型相关的参数,比如主机名、端口号和数据库名。JDBC使用了一种与普通URL相类似的语法来描述数据源。 e.g. 常用数据库URL Derby: jdbc:derby://localhost:1527/COREJAVA;create=true PostgreSQL: jdbc:postgresql:COREJAVA MySQL: jdbc:mysql://host:port/database Oracle: jdbc:oracle:thin:@host:port:databse JDBC URL的语法一般为: jdbc:subprotocol:other stuff subprotocol用于指明连接到数据库的特定驱动程序。 other stuff参数的格式随所使用的subprotocol不同而不同。 3.2 驱动程序JAR文件 在运行访问数据库的程序时,需要将驱动程序的JAR文件包括到类路径中(编译时并不需要整个JAR文件) 从命令行启动时,只需要使用下面的命令 java -classpath .;driverJar ProgramName 通过;分号,将当前路径(由 . 字符标示的路径)与驱动程序的JAR文件分隔开。 3.3 启动数据库 数据库服务器在连接之前需要先启动 Derby数据库的启动步骤 (1)打开命令shell(linux)或cmd(windows)窗口C:\"Program Files"\Sun\JavaDB\lib (2)找到derbyrun.jar,一般在JavaDB中(C:\Program Files\Sun\JavaDB\lib) (3)启动服务 : java -jar derbyrun.jar server start (4)配置文件db.properties ij.driver=org.apache.derby.jdbc.ClientDriver ij.protocol=jdbc:derby://localhost:1527/ ij.database=DBNAME;create=true 注意 : 只有配置文件名和database可以使用任意名 (5)在另一个shell/cmd窗口中运行Derby的交互式脚本执行工具 : java -jar derbyrun.jar ij -p db.properties 注意 : 打开交互式执行脚本工具之后,会在derbyrun.jar所在目录下创建以配置文件中ij.database的值命名的文件夹。 (6)在打开的窗口中可以输入SQL语句,以;分号结尾。 (7)退出编辑器EXIT; (8)关闭服务器 : java -jar derbyrun.jar server shutdown 3.4 注册驱动器类 情况一:某些JDBC的JAR文件将自动注册驱动器类(Java Standard Edition Service Provider),包含META-INF/services/java.sql.Driver文件的JAR文件可以自动注册。 e.g.Derby中lib目录下JAR包derby.jar中包含java.sql.Driver文件。该文件中"org.apache.derby.jdbc.AutoloadedDriver"为Derby的JDBC驱动程序实现名字。 情况二:如果驱动程序JAR不支持自动注册,需要找出数据库提供商使用的JDBC驱动器的名字。 典型的名字如下: Oracle:oracle.jdbc.driver.OracleDriver SQLServer:com.microsoft.jdbc.sqlserver.SQLServerDriver MySQL:org.gjt.mm.mysql.Driver 或com.mysql.jdbc.Driver 注:这里实际上都是调用的com.mysql.jdbc.Driver,下面为org.gjt.mm.mysql.Driver源码

01
领券