Ubuntu psql:无法连接到服务器

Da *_* Li 6 ubuntu psql

我本地安装了 postgresql。正如我所得到的,它不会启动:

psql: 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"?
Run Code Online (Sandbox Code Playgroud)

手动启动不起作用:

sudo /etc/init.d/postgresql restart
  * Restarting PostgreSQL 9.4 database server
  * The PostgreSQL server failed to start. Please check the log output:
       2015-03-09 17:41:39 CET [3769-1] FATAL:  could not create lock file "/var/run/postgresql/.s.PGSQL.5432.lock": Permission denied
Run Code Online (Sandbox Code Playgroud)

好的,权限有问题。让我们看看它们:

ls -all /var/run/
drwxr-xr-x 27 root        root         900 Mar  9 17:36 .
drwxr-xr-x 25 root        root        4096 Feb 28 06:19 ..
drwxrwsr-x  3 postgres-xc postgres-xc   60 Mar  9 17:35 postgresql
Run Code Online (Sandbox Code Playgroud)

我发现以下内容:这样做sudo chmod 777 /var/run/postgresql解决了问题,然后可以启动 postgresql 。不幸的是,这必须在每次重新启动 Ubuntu 后完成。所以两个问题:1.怎么了?为什么 chmod 不是永久的?2.如何修复?

谢谢!

Da *_* Li 7

好的,我找到了解决方案。删除、清除并重新安装 postgresql 并没有解决问题。我认为早期版本的一些文物仍然存在(例如,我仍然在 /etc/postgresql/ 中找到 9.1、9.3 和 9.4 作为子目录)。以下是我设置全新安装时执行的完整命令集:

sudo apt-get remove postgresql
sudo apt-get purge postgresql
apt-get --purge remove postgresql\*
sudo apt-get --purge remove postgresql\*
sudo rm -r /etc/postgresql/
sudo rm -r /etc/postgresql-common/
sudo rm -r /var/lib/postgresql/
sudo rm -r /var/run/postgres
userdel -r postgres
sudo userdel -r postgres
sudo apt-get install postgresql
Run Code Online (Sandbox Code Playgroud)

此后,问题不再存在。