PostgresSQL: org.postgresql.util.PSQLException: ERROR: Unsupported startup parameter: search_path

PostgresSQL: org.postgresql.util.PSQLException: ERROR: Unsupported startup parameter: search_path

当我尝试通过 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。

pgbauncer

简而言之,pgbouncer 至少我的版本不能使用 search_path 参数,this 讨论使我想到了这个想法。有两种方法可以解决此问题:

  1. 通过添加更改 pgbouncer 配置文件
    IGNORE_STARTUP_PARAMETERS: search_pat
    
  2. 在不使用连接字符串中的 currentSchema 参数的情况下建立连接,并像这样创建连接:
    val connection = DriverManager.getConnection(profile.connection + Option(profile.catalog).getOrElse(""),profile.user, profile.password)
    
    然后他会根据规则集来选择scheme,在search_path里面,他们通常会设置成"$user", pulic这样的东西,这种情况下,在连接的时候,他会先尝试选择与用户名相同的scheme,如果没有找到这样的scheme,则选择public.