You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写pgxpool连接远程Linode PostgreSQL RDS的有效连接字符串?

连接Linode PostgreSQL RDS的pgxpool配置问题

我用Go的pgxpool连接Docker容器中的PostgreSQL完全正常,但连接Linode PostgreSQL RDS时遇到以下问题:

  • 不清楚postgres://格式的连接URL后续正确配置方式,找不到非本地数据库的URL示例
  • 缺少DSN格式的连接代码参考

当前使用的DSN返回host is invalid错误,ssl_mode参数也提示无效,代码如下:

config, err := pgxpool.ParseConfig("user=linpostgres, password=secret, host=lin-9930-2356-pgsql-primary.servers.linodedb.net, port=5432 dbname=mydb, pool_max_conns=10")

此外,使用psql连接时出现超时,命令如下:

psql --username=linpostgres --host=lin-9930-2356-pgsql-primary.servers.linodedb.net port=5432 --password

正确的pgxpool连接配置

DSN格式(推荐)

pgxpool的DSN参数不能用逗号分隔,必须用空格或&分隔,同时Linode PostgreSQL强制要求SSL连接,需指定sslmode=require:

// 空格分隔的DSN
config, err := pgxpool.ParseConfig("user=linpostgres password=secret host=lin-9930-2356-pgsql-primary.servers.linodedb.net port=5432 dbname=mydb pool_max_conns=10 sslmode=require")

// &分隔的DSN
config, err := pgxpool.ParseConfig("user=linpostgres&password=secret&host=lin-9930-2356-pgsql-primary.servers.linodedb.net&port=5432&dbname=mydb&pool_max_conns=10&sslmode=require")

URL格式

如果习惯用postgres://开头的URL,格式如下:

config, err := pgxpool.ParseConfig("postgres://linpostgres:secret@lin-9930-2356-pgsql-primary.servers.linodedb.net:5432/mydb?pool_max_conns=10&sslmode=require")

正确的psql连接命令

psql的port参数需要加双短横线(--port),同时必须指定SSL模式:

psql --username=linpostgres --host=lin-9930-2356-pgsql-primary.servers.linodedb.net --port=5432 --dbname=mydb --password --sslmode=require

超时问题排查

psql连接超时大概率是Linode的防火墙规则限制,需要在Linode控制台的PostgreSQL实例设置中,将你的本地IP添加到允许访问的IP列表里,开放5432端口。


内容的提问来源于stack exchange,提问作者markhorrocks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 22:45:37