Thread: TCP/IP Sockets, UNIX Sockets

TCP/IP Sockets, UNIX Sockets

From
Daniel Åkerud
Date:
How do you force pgsql to use either TCP/IP Sockets or UNIX Sockets?
And how do you know which one it uses?
 
It is for a performance analysis.
 
Thanks!
 
Daniel Åkerud
 

Re: TCP/IP Sockets, UNIX Sockets

From
Peter Eisentraut
Date:
Daniel Åkerud writes:

> How do you force pgsql to use either TCP/IP Sockets or UNIX Sockets?

This depends greatly on what exactly "pgsql" stands for.  In the server
you can turn off the TCP/IP socket, so no client can use it.  In the
client library you just connect() to whatever socket you want.  The
existing clients should have a function or an option to decide.  For
example in psql you use -h 'hostname' for TCP/IP, or -h '' for unix
domain.

> And how do you know which one it uses?

You follow the documentation of the interface you use and trust it's doing
the right thing.  When in doubt use netstat or something similar.

--
Peter Eisentraut   peter_e@gmx.net   http://funkturm.homeip.net/~peter


Re: TCP/IP Sockets, UNIX Sockets

From
Daniel Åkerud
Date:
Well,
oops

What I means was, using the C API for PostgreSQL, how can I choose whether I
want to use UNIX Sockets or regular TCP/IP Socktets? On MySQL I write either
127.0.0.1 for TCP/IP or "localhost" for UNIX Sockets.

Daniel Åkerud

> Daniel Åkerud writes:
>
> > How do you force pgsql to use either TCP/IP Sockets or UNIX Sockets?
>
> This depends greatly on what exactly "pgsql" stands for.  In the server
> you can turn off the TCP/IP socket, so no client can use it.  In the
> client library you just connect() to whatever socket you want.  The
> existing clients should have a function or an option to decide.  For
> example in psql you use -h 'hostname' for TCP/IP, or -h '' for unix
> domain.
>
> > And how do you know which one it uses?
>
> You follow the documentation of the interface you use and trust it's doing
> the right thing.  When in doubt use netstat or something similar.
>
> --
> Peter Eisentraut   peter_e@gmx.net   http://funkturm.homeip.net/~peter
>
>


Re: TCP/IP Sockets, UNIX Sockets

From
Peter Eisentraut
Date:
Daniel Åkerud writes:

> What I means was, using the C API for PostgreSQL, how can I choose whether I
> want to use UNIX Sockets or regular TCP/IP Socktets? On MySQL I write either
> 127.0.0.1 for TCP/IP or "localhost" for UNIX Sockets.

Please peruse the description at
http://www.de.postgresql.org/devel-corner/docs/postgres/libpq.html#LIBPQ-CONNECT.

In particular look for the "host" parameter.  If it's empty or starts with
a slash, then it's a unix domain socket, otherwise it's TCP/IP.  (Note
that "localhost" is TCP/IP in libpq.)

--
Peter Eisentraut   peter_e@gmx.net   http://funkturm.homeip.net/~peter