我是postgres的新手,在服务器重启后遇到连接数据库的困难。我在OS用户测试下创建了一个数据库pgdb。 服务器重新启动后,我通过发出重新启动pgsql 命令
service postgresql-9.6 start
启动postgresql-9.6服务:[确定]
如果我只是发出psql,我会被带到psql提示符,但这里的数据路径与我之前设置的不同。当我尝试以postgres用户身份连接到pgdb时,出现错误:
psql:致命:数据库" pgdb"不存在
当我尝试以测试用户身份连接时:
psql -d pgdb
psql:致命:角色"测试"不存在
请建议
答案 0 :(得分:0)
听起来,您在OS用户测试下创建的数据库位于Postgres的不同实例下,而不是由service postgresql-9.6 start
实例化的实例下。这两个实例可能(或者可能已经在服务器重新启动之前)在不同的端口(例如5432和5433)下运行。
或者,因为您已将此标签标记为postgres-9.4和postgres-9.6,所以您需要知道它们彼此不同。 在Postgres 9.4下创建的任何数据库都不应该在Postgres 9.6下存在。。如果在9.4下创建了pgdb
数据库,但是在重新启动后开始运行9.6,则通常需要迁移数据库(该过程不在此问题的范围之内)。同样,在9.4下创建的用户在9.6下不会自动存在。