Postgres - 在 bash 中测试数据库连接

新手上路,请多包涵

我想知道是否有替代 psql 命令的方法来测试使用 bash 与 postgresql 数据库的连接。

我正在设置一个核心操作系统集群并有一个辅助服务,它应该每分钟执行一次相当于 psql 'host=xxx port=xxx dbname=xxx user=xxx' 以确定服务是否正在运行,更重要的是,如果可以使用给定的连接到它参数)。

我不能直接在 Core OS 上安装 postgres。 Core OS 中通常使用的命令类似于 curl -f ${COREOS_PUBLIC_IPV4}:%i; 。但它只告诉服务本身是否在给定端口上运行,没有任何访问检查。

先感谢您!

原文由 Raphael 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 822
1 个回答

pg_isready 是一个用于检查 PostgreSQL 数据库服务器连接状态的实用程序。退出状态指定连接检查的结果。

它可以很容易地在 bash 中使用。 PostgresSQL 文档 - pg_isready

示例用法:

 pg_isready -d <db_name> -h <host_name> -p <port_number> -U <db_user>

安装

sudo apt install -y postgresql-client

退出状态

pg_isready 将以下内容返回给 shell:

   0 - if the server is accepting connections normally,
  1 - if the server is rejecting connections (for example during startup),
  2 - if there was no response to the connection attempt, and
  3 - if no attempt was made (for example due to invalid parameters).

注意man pg_isready 声明: 不需要提供正确的用户名、密码或数据库名称值来获取服务器状态;但是,如果提供了不正确的值,服务器将记录失败的连接尝试。

原文由 alibaba 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题