我有一个Postgres权限问题,每次我安装postgres它都会以root用户身份执行,导致initdb
,createdb
或其他任何我尝试的权限拒绝。
我sudo chown
/usr/local/var/postgres
的所有权似乎发生了变化,允许我从cmd行手动输入目录,然后只包含列出错误的server.log
文件:
postgres cannot access the server configuration file "/usr/local/var/postgres/postgresql.conf": No such file or directory
然后我转到initdb
并返回:
The files belonging to this database system will be owned by user "jamesbkemp".
This user must also own the server process.
The database cluster will be initialized with locale "en_GB.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are disabled.
initdb: directory "/usr/local/var/postgres" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/usr/local/var/postgres" or run initdb
with an argument other than "/usr/local/var/postgres"
然后我回去查看/usr/local/var/postgres
并且所有者已更改回root。经过几个小时的努力,我真的很茫然不知道发生了什么。有什么想法吗?
答案 0 :(得分:0)
Postgresql作为非root用户安装即使不是不可能也是一种痛苦,因为它不是这样设计的:它是一种多用户服务。
同样的事情:apache2作为非root用户 - 你必须自己构建服务器自己更改配置。
让我补充一点,对于一位经验丰富的数据中心运营商来说,这是一个奇怪的想法,比如在公寓里开一辆赛车。