当我尝试启动postgresql时,我收到一个错误:
postgres
postgres不知道在哪里可以找到服务器配置文件。
您必须指定--config-file或-D调用选项或设置PGDATA环境变量。
然后我尝试设置我的配置文件:
postgres -D /usr/local/var/postgres
我得到了以下错误:
postgres无法访问服务器配置文件"/usr/local/var/postgres/postgresql.conf ":权限被拒绝
嗯,好的。接下来,我尝试以管理员的身份执行相同的操作:
sudo postgres -D /usr/local/var/postgres
我收到以下错误:
不允许PostgreSQL服务器的"root"执行。
服务器必须在非特权用户ID下启动,以防止可能的系统安全危害。有关如何正确启动服务器的详细信息,请参阅文档。
我在谷歌上搜索了那个错误信息,但没有找到解决方案。
有人能对此提供一些见解吗?
4条答案
按热度按时间pw9qyyiw1#
对于那些尝试使用官方Docker映像运行自定义命令的用户,请使用以下命令。
docker-entrypoint.sh
处理切换用户和处理其他权限。cbeh67ev2#
您的命令没有执行您认为的操作。要以system用户
postgres
身份运行某个命令:要运行命令(也称为
postgres
!):您的命令执行相反的操作:
它以超级用户
root
(sudo
没有-u
开关)的身份运行程序postgres
,出于安全原因,Postgres不允许以超级用户权限运行,因此出现了错误消息。如果要以系统用户
postgres
的身份运行几个命令,请使用以下命令更改用户:......和
exit
(当您完成时)。如果您在以系统用户
postgres
身份操作时看到此错误消息,则说明文件或其中一个包含目录的权限存在问题。postgres无法访问服务器配置文件"/usr/local/var/postgres/postgresql.conf ":权限被拒绝/usr/local/var/postgres/postgresql.conf
考虑instruction in the Postgres manual。
还可以考虑基于Debian的发行版中的 Package 器
pg_ctl
或pg_ctlcluster
。并了解
su
和sudo
之间的区别。monwx1rj3#
Muthukumar的答案是最好的!!在用更简单的方法改变我在Kubernetes的高山Postgres部署搜索了一整天之后,我找到了这个简单的答案。
这是我的完整描述,好好享受吧!!
首先,我需要创建/定义一个具有正确值的ConfigMap。保存在文件“custom-postgresql.conf”中:
创建配置/Map:
请注意,自定义设置中的值是根据Pod资源(主要是内存和CPU分配)定义的。
有清单(postgres.yml):
您可以使用
转到pod并检查应用的设置:
谢谢你!
请尝试自己,验证,并分享!
k5ifujac4#
终端返回找不到postgres命令。
无法更新postgresql