Postgresql 如何让pg_ctl重新加载工作?请求postgres用户';的密码,但不接受它
我已经按照Postgres网站上的说明,使用Postgresql 如何让pg_ctl重新加载工作?请求postgres用户';的密码,但不接受它,postgresql,postgresql-11,Postgresql,Postgresql 11,我已经按照Postgres网站上的说明,使用yum在CentOS 7虚拟机上安装了PostgreSQL 11。安装之后,我做到了 /usr/pgsql-11/bin/postgresql-11-setup initdb systemctl enable postgresql-11 systemctl start postgresql-11 然后去配置postgresql.conf文件 现在我需要重新加载数据库,以便这些更改生效 我尝试使用postgres帐户sudo pg_ctl reload
yum
在CentOS 7虚拟机上安装了PostgreSQL 11。安装之后,我做到了
/usr/pgsql-11/bin/postgresql-11-setup initdb
systemctl enable postgresql-11
systemctl start postgresql-11
然后去配置postgresql.conf
文件
现在我需要重新加载数据库,以便这些更改生效
我尝试使用postgres
帐户sudo pg_ctl reload
,然后提示我输入postgres
的密码。据我所知,该帐户是在初始化时创建的,并没有密码,但不接受只按enter键
然后,我尝试通过从根目录执行su-u postgres psql postgres
来更改密码,并在shell中执行ALTER USER postgres password'myPasswordHere'
返回ALTER ROLE
作为确认。如上所述重新尝试重新加载时,仍不接受新密码
然后,我尝试以root用户身份执行systemctl restart postgres-11
,但这似乎完全破坏了数据库,不允许我执行任何涉及数据库的进程,甚至不允许访问postgreshell
我不得不删除数据目录,然后重新运行上面的initdb
命令来重新启动一切(而且pg_ctl
命令仍然不接受我的密码)
如何正确地重新加载数据库,以便实现对
postgresql.conf
的更改?您在许多层面上都感到困惑
pg_hba.conf
文件配置错误postgres
的身份运行pg\u ctl reload
,而不是以root
的身份运行,因为postgres
拥有PostgreSQL进程,因此不需要sudo
,也不需要操作系统密码您可能应该阅读关于和的PostgreSQL文档。如果
systemctl restart postgres-11
使您的安装“中断”,那么您可能对PostgreSQL.conf
做了一些不正确的更改,现在postgres拒绝启动。您是否尝试恢复这些更改,然后重新启动服务?我的建议是不要直接编辑postgresql.conf
,而是添加一个包含所有更改的custom.conf
,然后将其包含在postgresql.conf
的末尾,这样您就可以随时知道更改了什么,您可以通过不包含自定义配置文件轻松恢复。感谢您的澄清。在pg_ctl
命令之前使用sudo
似乎是个问题。此外,我还需要重新启动pg_ctl,而不是重新加载。尽管我用-D
标志澄清了数据目录,但它还是输出了一行,表示权限被拒绝,无法更改到目录“my current directory”,但重新加载仍然有效。