无法连接到 Postgres

无法连接到 Postgres

我做了一件非常愚蠢的事情:我sudo chmod -R 777 /对根目录内的所有文件夹运行了 。之后甚至sudo由于权限无效而无法工作。我修复了 的问题sudo,但我需要在 PostgreSQL 中创建我的数据库的备份转储文件。正如您所猜想的那样,在我愚蠢的行为之后pg_dumppsql不再起作用。当我尝试执行它们时,我得到:

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

答案1

修复系统权限将是一件困难的事情。您有两个选择:重新安装系统中的所有软件包或从头开始重新安装,并备份数据。就我个人而言,我会选择第二个选项。

首先,使用以下命令检查 PostgreSQL 存储数据库的位置:

sudo cat /etc/postgresql/{version}/main/postgresql.conf | grep data_directory

(对于此过程,我将使用“/srv/postgresql/9.6/main”作为示例,并使用 9.6 作为版本)。然后,尝试使用以下命令修复您的权限:

sudo chown postgres.postgres -R /srv/postgresql/9.6/main
sudo find /srv/postgresql/9.6/main -type d -print0 | xargs -r -0 chmod 700
sudo find /srv/postgresql/9.6/main -type f -print0 | xargs -r -0 chmod 600
sudo chown postgres.postgres -R /var/run/postgresql
sudo chmod u=rwx,g=rws,o=rx /var/run/postgresql
sudo find /var/run/postgresql -type f -print0 | xargs -r -0 chmod 600
sudo chmod u=rwx,g=rs /var/run/postgresql/*.pid
sudo service postgresql restart

最后,尝试使用以下命令连接该服务:

sudo -u postgres psql

如果这不起作用,请备份您的数据目录,完全重新安装您的 PostgreSQL 包,这样它将修复您的权限,然后重试。

相关内容