Postgres无法连接到数据库postgres:无法连接到服务器:没有这样的文件或目录?

时间:2018-01-28 18:47:15

标签: sql linux database postgresql manjaro

我正在使用4.14.10-2-MANJARO。 我试过安装Postgres数据库。 我使用命令安装了postgresql 10.1-1:

yaourt -S postgresql

然后:

sudo -u postgres -i

initdb --locale $LANG -E UTF8 -D '/var/lib/postgres/data'

createuser --interactive

然后我有这样的事情:

createuser: could not connect to database postgres: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/run/postgresql/.s.PGSQL.5432"?

我不知道如何解决它。 我一直在使用这个网站:

https://wiki.archlinux.org/index.php/PostgreSQL#Installing_PostgreSQL

然后我想通过命令创建一个新数据库:

createdb myDatabaseName

谢谢。

2 个答案:

答案 0 :(得分:0)

使用initdb创建数据目录后,需要使用

启动数据库服务器进程
pg_ctl -D /var/lib/postgres/data start

但在此之前,您应该修改/var/lib/postgres/data.postgresql.conf并设置listen_addressesportshared_buffers等参数以及有关日志记录的所有内容。

这样,您可以在启动服务器后查看日志文件,看看是否一切顺利。

答案 1 :(得分:0)

我遇到了同样的问题,我也在运行4.19.1-1-MANJAROpostgresql 10.5-3,但是大多数答案是针对Ubuntu的,并且指的是Manjaro上不存在的目录。

您必须运行systemctl来检查服务,看看有什么问题

sudo systemctl status postgresql

它给出了类似的东西

systemd[1]: Starting PostgreSQL database server...
postgres[3902]: "/var/lib/postgres/data" is missing >
postgres[3902]:   su - postgres -c "initdb --locale >

,它告诉您运行上面列出的su命令。但这需要用户postgres的密码。为了解决这个问题,我们改用sudo命令。

sudo su - postgres -c "initdb --locale en_US.UTF-8 -D /var/lib/postgres/data'"

此命令完成后,它会告诉您运行pg_ctl -D /var/lib/postgres/data start,而只是通过systemctl启动它。

sudo systemctl enable postgresql
sudo systemctl start postgresql