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 讨论使我想到了这个想法。有两种方法可以解决此问题:
- 通过添加更改 pgbouncer 配置文件
IGNORE_STARTUP_PARAMETERS: search_pat
- 在不使用连接字符串中的
currentSchema
参数的情况下建立连接,并像这样创建连接:
val connection = DriverManager.getConnection(profile.connection + Option(profile.catalog).getOrElse(""),profile.user, profile.password)
然后他会根据规则集来选择scheme,在search_path里面,他们通常会设置成"$user", pulic
这样的东西,这种情况下,在连接的时候,他会先尝试选择与用户名相同的scheme,如果没有找到这样的scheme,则选择public.
当我尝试通过 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 讨论使我想到了这个想法。有两种方法可以解决此问题:
- 通过添加更改 pgbouncer 配置文件
IGNORE_STARTUP_PARAMETERS: search_pat
- 在不使用连接字符串中的
currentSchema
参数的情况下建立连接,并像这样创建连接:
然后他会根据规则集来选择scheme,在search_path里面,他们通常会设置成val connection = DriverManager.getConnection(profile.connection + Option(profile.catalog).getOrElse(""),profile.user, profile.password)
"$user", pulic
这样的东西,这种情况下,在连接的时候,他会先尝试选择与用户名相同的scheme,如果没有找到这样的scheme,则选择public.