psql: FATAL: the database system is starting up

本文记录了在搭建PostgreSQL 9.6.1同步流复制备库过程中遇到的连接失败问题及其解决办法。主要原因是`hot_standby`参数未正确配置导致无法通过psql连接到备库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pg9.6.1
在搭建同步流复制的standby库时,启动备库时,报错:
[postgres@pghs ~]$ psql
psql: FATAL:  the database system is starting up

后经检查,是postgresql.conf中hot_standby没有设置:
hot_standby = on

成功:
 [postgres@pghs ~]$ psql
psql (9.6.1)
Type "help" for help.

postgres=#

后经大神提点,在执行psql报错的时候,并非是启动备库时,只是是在连接备库时,此时备库时正常的,只是连不上:
[postgres@pghs datass]$ psql
psql: FATAL:  the database system is starting up
[postgres@pghs datass]$  ps -ef | grep postgres
root      1822  1777  0 01:00 pts/0    00:00:00 su - postgres
postgres  1823  1822  0 01:00 pts/0    00:00:00 -bash
postgres  1873  1823  0 01:01 pts/0    00:00:00 psql
root      3962  3942  0 14:35 pts/2    00:00:00 su - postgres
postgres  3963  3962  0 14:35 pts/2    00:00:00 -bash
postgres  4084     1  0 14:41 pts/2    00:00:00 /usr/pg/postgresql-9.6.1/bin/postgres -D /PostgreSQL/9.6.1/datass
postgres  4085  4084  0 14:41 ?        00:00:00 postgres: logger process                                         
postgres  4086  4084  0 14:41 ?        00:00:00 postgres: startup process   recovering 000000010000000000000015  
postgres  4087  4084  0 14:41 ?        00:00:00 postgres: checkpointer process                                   
postgres  4088  4084  0 14:41 ?        00:00:00 postgres: writer process                                         
postgres  4096  3963  0 14:42 pts/2    00:00:00 ps -ef
postgres  4097  3963  0 14:42 pts/2    00:00:00 grep postgres
[postgres@pghs datass]$ netstat -a | grep PGSQL
unix  2      [ ACC ]     STREAM     LISTENING     19502  /tmp/.s.PGSQL.5432
[postgres@pghs datass]$ 
 

当您在 PostgreSQL 环境中尝试连接到名为 "temolate1" 的数据库,并收到 "FATAL: database 'temolate1' does not exist" 这样的错误提示时,意味着系统无法找到您所指定的数据库。这通常有以下几个原因: 1. **数据库不存在**:的确,如错误信息所述,该数据库尚未创建或已经被删除。 2. **拼写错误**:检查数据库名是否输入正确,包括大小写。PostgreSQL 对数据库名是非常敏感的。 3. **权限问题**:如果您不是超级用户,可能需要具有管理数据库的权限才能创建新数据库。 4. **连接参数问题**:确认您的 `psql` 或者相关的连接工具配置了正确的数据库地址、用户名和密码。 5. **数据库正在维护或未启动**:如果数据库服务器未运行,也无法访问。 要解决这个问题,您可以按照以下步骤操作: - **创建数据库**:如果是第一次尝试创建,可以使用 `\c` 命令加上数据库名来创建一个新的数据库,例如: ``` \c temolate1 CREATE DATABASE temolate1; ``` - **检查拼写或大小写**:确保命令行里的数据库名与实际名称一致。 - **获取权限**:如果需要管理员权限,确保您的账户拥有适当的权限级别。 - **启动服务**:如果数据库未启动,请先启动 PostgreSQL 服务。 - **检查配置文件**:查看配置文件 (如 `/etc/postgresql/<version>/main/pg_hba.conf` 或其他位置) 是否允许从当前主机连接。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丹心明月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值