【问题标题】:No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"没有这样的文件或目录服务器是否在本地运行并在 Unix 域套接字“/var/run/postgresql/.s.PGSQL.5432”上接受连接
【发布时间】:2016-05-03 16:27:12
【问题描述】:

请帮帮我!第一次在 Linux 上设置 PostgreSql 和 Rails 时,我只需要运行 sudo service postgresql restart。有用。最近我安装了 hadoop 并对文件权限进行了一些更改。然后,当我 cd 到 Rails 项目并运行 rails s 时,会出现上述错误消息。我不知道为什么。我花了两天时间在互联网上尝试了这么多可用的解决方案。还是不行。

【问题讨论】:

  • sudo service postgresql status 的结果是什么?
  • postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; disabled; vendor preset: enabled) Active: active (exited) since T3 2016-05-03 14:04:35 ICT; 1h 32min ago Process: 2383 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Main PID: 2383 (code=exited, status=0/SUCCESS) CGroup: /system.slice/postgresql.service Th05 03 14:04:35 quyen-HP-1000-Notebook-PC systemd[1]: Starting PostgreSQL RD... Th05 03 14:04:35 quyen-HP-1000-Notebook-PC systemd[1]: Started PostgreSQL RDBMS. Hint: Some lines were ellipsized, use -l to show in full.
  • 这是结果@kunashir

标签: ruby-on-rails postgresql server


【解决方案1】:

您可能没有权限从“postgres”所有者操作系统用户在 /var/run/postgresql 中创建文件。 Sudo 不会产生影响,因为服务脚本本身作为 postgres 所有者/用户启动。

检查 /var/run/postgresql 的权限。

尝试使用

手动启动它(不使用 servcie 脚本)
pg_ctl start -d $PGDATA

检查 PostgreSQL 日志文件(默认:/var/log/pgsql)的输出以查看其未启动的真正原因。

我的赌注是权限。

【讨论】:

  • 我不知道为什么 pg_ctl 在我的案例中找不到命令 @d1ll1nger
  • 它可能不在您的路径中。您使用的是哪个版本的 PostgreSQL?如果您使用的是 PostgreSQL 9.5,它通常会安装在 /var/lib/pgsql-9.5/bin 中。
  • 我试过了,有错误2016-05-03 13:30:27 ICT [1662-2] DETAIL: File must have permissions u=rw (0600) or less if owned by the database user, or permissions u=rw,g=r (0640) or less if owned by root. 2016-05-03 14:03:23 ICT [2315-1] FATAL: data directory "/var/lib/postgresql/9.5/main" has group or world access 2016-05-03 14:03:23 ICT [2315-2] DETAIL: Permissions should be u=rwx (0700). 2016-05-03 14:04:35 ICT [2381-1] FATAL: data directory "/var/lib/postgresql/9.5/main" has group or world access
  • 这就是你的答案。 /var/lib/postgresql/9.5/main 的数据目录对不应干扰 PostgreSQL 数据库的组或世界访问权限太多。 chown -R postgres /var/lib/postgresql/9.5/main chmod -R 700 /var/lib/postgresql/main
  • 你能帮我远程调试一下这个错误吗?当我无法改进时,我真的很累。
猜你喜欢
  • 2015-08-13
  • 1970-01-01
  • 2019-01-24
  • 2015-05-09
  • 1970-01-01
  • 1970-01-01
  • 2021-04-21
  • 2020-11-09
相关资源
最近更新 更多