服务器是否在本地运行并接受Unix域套接字上的连接/var/run/postgresql/.s.PGSQL.5432“;

服务器是否在本地运行并接受Unix域套接字上的连接/var/run/postgresql/.s.PGSQL.5432“;,postgresql,Postgresql,PostgreSQL 9.4.11 Ubuntu 16.04 为了学习porpuses,我想记录所有的SQL命令 我所尝试的就是基于这个 所以,我做到了: 1. #log_directory = 'pg_log' to log_directory = '/home/michael/pg_log' 2. #log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' to log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log

PostgreSQL 9.4.11

Ubuntu 16.04

为了学习porpuses,我想记录所有的SQL命令

我所尝试的就是基于这个

所以,我做到了:

1. #log_directory = 'pg_log' to log_directory = '/home/michael/pg_log'
2. #log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' to log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
3. #log_statement = 'none' to log_statement = 'all'
4. #logging_collector = off to logging_collector = on
5. sudo service postgresql restart
那么我会: 1.sudosupostgres 2.psql

并获取以下错误:

postgres@hp:/etc/postgresql/9.4/main$ psql
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"?
如果我将postgresql.conf返回到初始语句并重新启动postgresql,那么psql运行时不会出现任何错误

你能帮我理解为什么会这样以及如何处理这个问题吗?

配置文件中带有
#
的行是一个注释

如果要激活该选项,只需删除
#
即可使用默认选项


如果您想使用其他文件夹,请确保该文件夹存在并具有适当的权限。

您在
michael
中是否有文件夹
pg\u log
?你首先要做的是删除
#
,在你的postgres安装中应该有一个文件夹
pg\u log
。不,我没有。我试试看。等一下。至于pg_日志。我试过了。但是我找不到我的日志文件。所以,我决定把它改成我的主目录。只是在主目录中添加一个目录“pg_log”没有帮助。但是返回log_目录='pg_log'会有所帮助。我找到了我的日志文件。但现在我不明白为什么我的配置不起作用了?它只是指向目录的绝对路径。通常程序可以创建一个不存在的目录。我甚至自己创造了一个。那么,问题出在哪里呢?我是一个windows用户。但是你不能假设,因为你改变了一个文本文件,一个目录就会被创建。即使在创建文件夹时,也需要提供适当的权限。非常感谢。如果你组织任何看起来像答案的东西,我很乐意接受。