rem*_*dev 6 postgresql openbsd
我不明白 Postgres 如何与 openBSD 一起工作。我在 debian 上没有遇到这些问题(我不必执行 initdb)。
我做了如下
pkg_add postgresql-server php-pgsql
su - _postgresql
initdb -D /var/postgresql/data -U postgres - E UTF8 -A md5 -W
Run Code Online (Sandbox Code Playgroud)
但在那之后,我没有得到我期望的结果
我可以启动数据库
pg_ctl -D /var/postgresql/data/ -l logfile start
Run Code Online (Sandbox Code Playgroud)
或与
rcctl enable postgresql
rcctl start postgresql
Run Code Online (Sandbox Code Playgroud)
但我不明白如何连接到它
因为如果我这样做:
# su - _postgresql
$ psql
Password:
psql: FATAL: password authentication failed for user "_postgresql"
Run Code Online (Sandbox Code Playgroud)
为什么是 _postgresql 用户而不是 postgres?我应该使用哪个密码?
这是pg_hba.conf,我改了结尾,
# 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
password
# IPv6 local connections:
host all all ::1/128 md5
Run Code Online (Sandbox Code Playgroud)
因此,我想,我已经登录了,但我遇到了一个新问题,确实有一些我不明白的事情
$ pg_ctl -D /var/postgresql/data/ -l logfile stop
waiting for server to shut down.... done
server stopped
$ pg_ctl -D /var/postgresql/data/ -l logfile start
server starting
$ psql
psql: FATAL: role "_postgresql" does not exist
Run Code Online (Sandbox Code Playgroud)
谢谢
所以创建新数据库时的正常情况是
与用户一起
su - _postgresql
initdb -D /var/postgresql/data -U postgres -k -E UTF8 -A md5 -W
Run Code Online (Sandbox Code Playgroud)
你必须选择一个密码
启动数据库
pg_ctl -D /var/postgresql/data/ -l logfile start
Run Code Online (Sandbox Code Playgroud)
您可以轻松登录
psql -U postgres
Run Code Online (Sandbox Code Playgroud)
但如果它不起作用,我想我密码有误
与用户一起
su - _postgresql
Run Code Online (Sandbox Code Playgroud)
首先我需要将 ph_hba.conf 更改为信任
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
Run Code Online (Sandbox Code Playgroud)
所以当我启动数据库时
pg_ctl -D /var/postgresql/data/ -l logfile start
Run Code Online (Sandbox Code Playgroud)
这样我就可以使用 postgres 用户登录
psql -U postgres
Run Code Online (Sandbox Code Playgroud)
最后更改密码
ALTER USER postgres WITH PASSWORD '123';
Run Code Online (Sandbox Code Playgroud)
不要忘记最后的“;”!
更改 pg_hba.conf 文件首先我需要将 ph_hba.conf 更改为密码(或者可能是 MD5)
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all password
Run Code Online (Sandbox Code Playgroud)
并重新启动
pg_ctl -D /var/postgresql/data/ -l logfile stop
pg_ctl -D /var/postgresql/data/ -l logfile start
Run Code Online (Sandbox Code Playgroud)
我终于可以正常登录了
psql -U postgres
Run Code Online (Sandbox Code Playgroud)