PostgresSQL:org.postgresql.util.PSQLException:错误:不支持的启动参数:search_path

问题描述 投票:0回答:1

当我尝试通过 jdbc 连接到 postgres 上的数据库时,出现以下错误: org.postgresql.util.PSQLException:错误:不支持的启动参数:search_path

这就是我创建连接的方式:

val connection = DriverManager.getConnection(profile.connection + Option(profile.catalog).getOrElse("")+ "?currentSchema="+Option(profile.schema).getOrElse(""),
  profile.user, profile.password)

我使用 scala 和 postgres 的自定义版本。

postgresql jdbc pgbouncer
1个回答
4
投票

pg保镖

简而言之,pgbouncer(至少我的版本)不适用于

search_path
参数。 这个讨论让我想到了以下两种可能的解决方案:

  1. 通过添加以下内容来更改 pgbouncer 配置文件
    IGNORE_STARTUP_PARAMETERS: search_path
    
  2. 在不使用连接字符串中的
    currentSchema
    参数的情况下建立连接,并像这样创建连接:
    val connection = 
      DriverManager.getConnection(
         profile.connection + Option(profile.catalog).getOrElse(""),
         profile.user, profile.password)
    
    然后,PostgreSQL将根据规则集选择方案,在search_path中。它通常类似于
    "$user", public
    。在这种情况下,连接时,它首先尝试选择与用户名相同的方案,如果没有找到这样的方案,则选择 public。
© www.soinside.com 2019 - 2024. All rights reserved.