Ubuntu psql: 无法连接到服务器

6

我在本地安装了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"?

手动启动无效:
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

好的,权限有问题。让我们来看一下:

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

我发现以下内容:执行sudo chmod 777 /var/run/postgresql可以解决问题,然后就能启动postgresql了。不幸的是,每次重启Ubuntu后都需要重新执行该命令。所以有两个问题: 1.出了什么问题?为什么chmod没有永久生效? 2.如何修复它?
谢谢!
1个回答

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

在此之后,问题不再存在。

找到解决方案了吗?@SoyuzbekOrozbekUulu - Jorgelig
1
@Jorgelig 刚刚彻底从电脑中卸载了postgresql服务器。显然解决方案不存在。 - Soyuzbek Orozbek Uulu
这对我有用,因为我现在可以登录 psql。然而,我的所有数据库都不见了。有什么办法可以将它们添加回来吗?数据仍然在本地卷中。 - CoupDeMistral

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接