我是 Arch 的新手,也是 PostgreSQL 的初学者,所以这可能是一个非常基本的问题。
我从 extra 安装了 postgresql 11.5-4 和从 AUR 安装了 pgadmin 4,两者似乎都运行良好。 我使用以下命令创建了一个测试数据库:
initdb -D /home/lg/test-db
我得到了答案:
You can start the db-server using:
pg_ctl -D /home/lg/test-db -l logdatei start
我试过了,得到了:
pg_ctl -D /home/lg/test-db -l logdatei start
waiting for serer to start.... stopped
pg_ctl: could not start the server
check the log.
日志只说无法创建锁定文件 »/run/postgresql/.s.PGSQL.5432.lock«,因为找不到该文件夹。在/run 下没有一个名为"postgresql"的文件夹。我想postgresql无法创建此文件夹,因为它没有权限。但是,一些在线帖子建议将数据库的用户/所有者更改为sudo。但是,Postgresql 可以防止这种情况。当我尝试任何命令作为sudo时,postgresql告诉我这个命令不能以root身份运行。我在这里的想法中一定有一些非常基本的错误,但我已经 3 个小时没有解决它了。
在启动服务器之前,您必须从postgresql.conf
unix_socket_directories
中删除/run/postgresql
。
可能你有/var/run 符号链接到/run,并且 run 在 tmpfs 上。你应该在/usr/lib/tmpfiles.d/postgresql.conf 中添加类似d /run/postgresql 0755 postgres postgres -
的东西