我是使用 postgres 的新手,我正在尝试访问在我没有 root 访问权限的网络服务器上运行的数据库。
我的问题是,在尝试与数据库交互或访问它时,我总是被要求输入密码,尽管trust
所有用户和数据库的身份验证都设置为。
在我的主目录中从源代码安装 postgres 9.2 后,我使用 成功启动了一个数据库集群initdb -U thisuser -D tmpdb -A trust
,其中thisuser
是我在网络服务器上的用户名。在此期间,我通过 ssh 登录到服务器。
使用 . 启动服务器也没有问题pg_ctl -D tmpdb start
。
但是,当我尝试使用psql -U postgres
它访问数据库时,总是要求输入密码。
据我了解,这不应该发生,因为我允许来自所有用户和数据库的连接。配置文件位于数据库集群 floder:tmpdb/pg_hba.conf
和tmpdb/postgresql.conf
.
服务器设置为listen_addresses = 'localhost'
,身份验证设置如下:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
我已经玩了很多设置,但是一旦设置好,我就无法知道如何实际访问数据库。我怎样才能获得访问权?
提前致谢!
编辑解决:
我不确定之前到底发生了什么,但我必须设置一个环境变量,如下所示:
PGPORT = 5433
export PGPORT
其中 5433 是postgresql.conf
文件中指定的端口。现在它工作正常......(感谢@celenius)。