如何让 pg_ctl 重新加载工作?询问 postgres 用户的密码,但不接受
How to get pg_ctl reload to work? Asks for postgres user's password, but does not accept it
我已经按照站点上的 Postgres 说明使用 yum
在 CentOS 7 VM 上安装了 PostgreSQL 11。安装后,我做了
/usr/pgsql-11/bin/postgresql-11-setup initdb
systemctl enable postgresql-11
systemctl start postgresql-11
然后去配置 postgresql.conf
文件。
现在我需要重新加载数据库以使这些更改生效。
我尝试 sudo pg_ctl reload
使用 postgres
帐户,然后提示我输入 postgres
的密码。据我了解,此帐户是在初始化时创建的,没有密码,但不接受仅按回车键。
然后我尝试通过从 root 执行 su -u postgres psql postgres
并在 shell 执行 ALTER USER postgres PASSWORD 'myPasswordHere';
中执行 return ALTER ROLE
作为确认来更改密码。如上所述重试重新加载,新密码仍未被接受。
然后我尝试以 root 身份执行 systemctl restart postgres-11
,但这似乎完全破坏了数据库,不允许我执行涉及数据库的任何进程甚至访问 Postgres shell.
我不得不删除数据目录并重新运行上面的 initdb
命令以重新启动所有内容(并且 pg_ctl
命令仍然不接受我的密码)。
如何正确地重新加载数据库以实现对 postgresql.conf
的更改?
你在很多层面上都感到困惑。
数据库用户不同于操作系统用户。
如果在数据库中更改postgres
的密码,操作系统用户仍然没有密码。
不过我看不出这是如何破坏数据库的。也许您的 pg_hba.conf
文件配置错误。
您 运行 pg_ctl reload
作为操作系统用户 postgres
,而不是 root
,因为 postgres
拥有 PostgreSQL 进程,因此不需要 sudo
,因此也不需要操作系统密码。
您可能应该阅读有关 client authentication and user management 的 PostgreSQL 文档。
我已经按照站点上的 Postgres 说明使用 yum
在 CentOS 7 VM 上安装了 PostgreSQL 11。安装后,我做了
/usr/pgsql-11/bin/postgresql-11-setup initdb
systemctl enable postgresql-11
systemctl start postgresql-11
然后去配置 postgresql.conf
文件。
现在我需要重新加载数据库以使这些更改生效。
我尝试 sudo pg_ctl reload
使用 postgres
帐户,然后提示我输入 postgres
的密码。据我了解,此帐户是在初始化时创建的,没有密码,但不接受仅按回车键。
然后我尝试通过从 root 执行 su -u postgres psql postgres
并在 shell 执行 ALTER USER postgres PASSWORD 'myPasswordHere';
中执行 return ALTER ROLE
作为确认来更改密码。如上所述重试重新加载,新密码仍未被接受。
然后我尝试以 root 身份执行 systemctl restart postgres-11
,但这似乎完全破坏了数据库,不允许我执行涉及数据库的任何进程甚至访问 Postgres shell.
我不得不删除数据目录并重新运行上面的 initdb
命令以重新启动所有内容(并且 pg_ctl
命令仍然不接受我的密码)。
如何正确地重新加载数据库以实现对 postgresql.conf
的更改?
你在很多层面上都感到困惑。
数据库用户不同于操作系统用户。 如果在数据库中更改
postgres
的密码,操作系统用户仍然没有密码。不过我看不出这是如何破坏数据库的。也许您的
pg_hba.conf
文件配置错误。您 运行
pg_ctl reload
作为操作系统用户postgres
,而不是root
,因为postgres
拥有 PostgreSQL 进程,因此不需要sudo
,因此也不需要操作系统密码。
您可能应该阅读有关 client authentication and user management 的 PostgreSQL 文档。