如何使用bash命令行中的psql测试postgresql连接字符串?

12
如果我有一个postgresql连接字符串:
export my_conn='postgresql://vadmin:Gimme5br@platform-prod.clfk51eo.us-west-2.rds.amazonaws.com/prod'

我该如何测试这个连接?我尝试过:

pqsl "$my_conn"

它就卡住了


1
我假设上面的笔误(pqsl vs psql)只是在创建问题时的笔误。如果上述操作卡住了,我认为您的问题可能是服务器和您连接的数据库之间的某种连接问题。也可能是防火墙或路由问题,还可能是一个shell扩展问题。您可以尝试直接使用命令行重新制定连接方式,例如 psql -U vadmin -h platform-prod.clfk51eo.us-west-2.rds.amazonaws.com -d prod,看看能否连接成功。 - xzilla
2个回答

11

请使用以下代码代替此代码:

psql "$my_conn" -c "SELECT 1"

这将尝试执行一个简单的查询,总是应该返回一行结果,然后退出。同时,您可以通过调用以下命令来检查操作的退出代码:

echo $?

除了0以外的任何值都意味着存在错误。


11

最适合此目的的工具是pg_isready

只需运行:

pg_isready -d "$my_conn"

并检查返回码。


谢谢,有没有一种打开shell的方法,类似于psql> - user5047085
不需要完全掌握,只要能打开一个 shell,你就可以连接。 - user5047085
我以为你想测试连接。你为什么要一个交互式 shell 呢? - Laurenz Albe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接