Postgresql是本地运行的服务器,接受Unix域上的连接

Alw*_*nny 5 postgresql psql ubuntu-14.04 postgresql-9.4 ubuntu-16.04

我正在尝试在我的ubuntu 或机器上安装postgresql-9.5postgresql-9.6,之后使用以下命令执行安装过程.16.0414.04

sudo apt-get install update
sudo apt-get install postgresql postgresql-contrib
Run Code Online (Sandbox Code Playgroud)

但是当我尝试psql使用以下命令从终端打开时

sudo su postgres 
psql 
Run Code Online (Sandbox Code Playgroud)

每一次它只是表现出来.

psql:无法连接到服务器:没有这样的文件或目录服务器是否在本地运行并接受Unix域套接字"/var/run/postgresql/.s.PGSQL.5432"上的连接?

我已经尝试了大约10个stackoverflow.com解决方案但没有成功.在撕掉我所有的头发之前请帮帮我:(

$ service postgresql status

? postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor prese
   Active: active (**exited) since ??? 2017-03-12 21:45:56 BDT; 23min ago
  Process: 917 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 917 (code=exited, status=0/SUCCESS)
    Tasks: 0
   Memory: 0B
      CPU: 0
   CGroup: /system.slice/postgresql.service
Run Code Online (Sandbox Code Playgroud)

仔细看看这条线为什么退出? 主动:主动(退出)自রবি2017-03-12 21:45:56 BDT; 23分钟前

Gab*_*Gab 12

您可以运行以下命令来检查postgresql是否正在运行:

service postgresql status
Run Code Online (Sandbox Code Playgroud)

如果PostgreSQL没有启动,您可以使用以下命令启动它:

service postgresql start
service postgresql status
Run Code Online (Sandbox Code Playgroud)

如果它无法正常启动,您可以查看日志中发生的情况:

tail /var/log/postgresql/postgresql-9.6-main.log
Run Code Online (Sandbox Code Playgroud)

您可能必须运行createdb以初始化数据库(请参阅https://www.postgresql.org/docs/current/static/app-createdb.html):

createdb demo
Run Code Online (Sandbox Code Playgroud)

更新

如果你正在运行PostgreSQL service postgresql status但你仍然无法连接,你应该检查PostgreSQL是否确实在端口5432或另一个上运行:

netstat -na | grep postgres
Run Code Online (Sandbox Code Playgroud)

更新2

由于debian/ubuntu for PostgreSQL上的原生包很糟糕,我建议你安装这些包:https://www.gab.lc/articles/install_postgresql_9-5_debian_ubuntu(替换9-29-6).


Alw*_*nny 5

这是在删除现有的PostgreSQL版本和目录后最终解决我的问题的方法

sudo apt-get --purge remove postgresql-*
sudo rm -Rf /etc/postgresql /var/lib/postgresql
sudo apt-get install postgresql
Run Code Online (Sandbox Code Playgroud)