permission denied on socket

Started by Atul Kumarabout 2 years ago9 messagesgeneral
Jump to latest
#1Atul Kumar
akumar14871@gmail.com

Hi,

I have postgres 13 running on centos 7.

I am facing an issue while trying to connect the cluster using the below
command.

-bash-4.2$ psql postgres

psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed:
Permission denied

Is the server running locally and accepting connections on that
socket?

but when I am trying to connect using the below command I am able to login
to the cluster successfully.

-bash-4.2$ psql postgres -h localhost

postgres=#

I am not sure what is causing this issue and what needs to be done to
resolve it ?

Regards.

#2Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Atul Kumar (#1)
Re: permission denied on socket

On 1/25/24 12:22, Atul Kumar wrote:

Hi,

I have postgres 13 running on centos 7.

I am facing an issue while trying to connect the cluster using the below
command.

-bash-4.2$ psql postgres

psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed:
Permission denied

With the Postgres server running does:

/tmp/.s.PGSQL.5432

exist?

Is the server running locally and accepting connections on that socket?

but when I am trying to connect using the below command I am able to
login to the cluster successfully.

-bash-4.2$ psql postgres -h localhost

postgres=#

The above works because you are not connecting to local(the socket), but
to localhost(127.0.0.1 or ::1).

I am not sure what is causing this issue and what needs to be done to
resolve it ?

Best guess is you are using a version of psql that is expecting the
socket to be somewhere else then where it actually is.

Regards.

--
Adrian Klaver
adrian.klaver@aklaver.com

#3Ron
ronljohnsonjr@gmail.com
In reply to: Atul Kumar (#1)
Re: permission denied on socket

On Thu, Jan 25, 2024 at 3:23 PM Atul Kumar <akumar14871@gmail.com> wrote:

Hi,

I have postgres 13 running on centos 7.

I am facing an issue while trying to connect the cluster using the below
command.

-bash-4.2$ psql postgres

psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed:
Permission denied

Is the server running locally and accepting connections on that
socket?

but when I am trying to connect using the below command I am able to login
to the cluster successfully.

-bash-4.2$ psql postgres -h localhost

postgres=#

I am not sure what is causing this issue and what needs to be done to
resolve it ?

psql explicitly tells you the problem:
socket "/tmp/.s.PGSQL.5432" failed: *Permission denied*
Did you look at the permissions on /tmp/.s.PGSQL.5432?

#4Ron
ronljohnsonjr@gmail.com
In reply to: Adrian Klaver (#2)
Re: permission denied on socket

On Thu, Jan 25, 2024 at 3:32 PM Adrian Klaver <adrian.klaver@aklaver.com>
wrote:
[snip]

Best guess is you are using a version of psql that is expecting the
socket to be somewhere else then where it actually is.

Is "permission denied" really the error you get when the socket does not
exist?

Trying "psql --host=/var/run/foo" gave me "No such file or directory".

#5Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Ron (#4)
Re: permission denied on socket

On 1/25/24 12:39 PM, Ron Johnson wrote:

On Thu, Jan 25, 2024 at 3:32 PM Adrian Klaver
<adrian.klaver@aklaver.com> wrote:
[snip]

Best guess is you are using a version of psql that is expecting the
socket to be somewhere else then where it actually is.

Is "permission denied" really the error you get when the socket does
not exist?

Trying "psql --host=/var/run/foo" gave me "No such file or directory".

The OP used:

psql postgres

In that case psql will use the default set when it is compiled against
libpq which from here:

https://www.postgresql.org/docs/16/libpq-connect.html#LIBPQ-PARAMKEYWORDS

"... is to connect to a Unix-domain socket in |/tmp| (or whatever socket
directory was specified when PostgreSQL was built)"

If you have more then one instance of psql on a machine and they where
built with different defaults you can

end up not hitting the right socket.

Also "permission denied" could be due to any part of the path
/tmp/.s.PGSQL.5432.

#6Tom Lane
tgl@sss.pgh.pa.us
In reply to: Ron (#4)
Re: permission denied on socket

Ron Johnson <ronljohnsonjr@gmail.com> writes:

On Thu, Jan 25, 2024 at 3:32 PM Adrian Klaver <adrian.klaver@aklaver.com>
wrote:

Best guess is you are using a version of psql that is expecting the
socket to be somewhere else then where it actually is.

Is "permission denied" really the error you get when the socket does not
exist?

Nope, that should mean either that /tmp is not readable, or that the
socket file is there but has restrictive permissions.

That doesn't necessarily make Adrian's answer wrong though.

regards, tom lane

#7Atul Kumar
akumar14871@gmail.com
In reply to: Tom Lane (#6)
Re: permission denied on socket

I checked the permissions on /tmp directory and it shows "drwxrwxrwt."
already, do I need to check something else as well ?

Regards.

On Fri, Jan 26, 2024 at 3:00 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:

Show quoted text

Ron Johnson <ronljohnsonjr@gmail.com> writes:

On Thu, Jan 25, 2024 at 3:32 PM Adrian Klaver <adrian.klaver@aklaver.com

wrote:

Best guess is you are using a version of psql that is expecting the
socket to be somewhere else then where it actually is.

Is "permission denied" really the error you get when the socket does not
exist?

Nope, that should mean either that /tmp is not readable, or that the
socket file is there but has restrictive permissions.

That doesn't necessarily make Adrian's answer wrong though.

regards, tom lane

#8Tom Lane
tgl@sss.pgh.pa.us
In reply to: Atul Kumar (#7)
Re: permission denied on socket

Atul Kumar <akumar14871@gmail.com> writes:

I checked the permissions on /tmp directory and it shows "drwxrwxrwt."
already, do I need to check something else as well ?

That seems fine, but what about the socket file itself?

regards, tom lane

#9Pierre Fortin
pf@pfortin.com
In reply to: Atul Kumar (#1)
Re: permission denied on socket

On Fri, 26 Jan 2024 01:52:58 +0530 Atul Kumar wrote:

Is the server running locally and accepting connections on that
socket?

Maybe this will help:

# ss -l | grep 5432