0

I have downloaded the windows version of PostgreSQL from here: https://www.enterprisedb.com/products-services-training/pgbindownload

I unzipped it and I executed the commands below to run the server, and it worked in Windows 10:

D:\postmaster_standalone\postgresql-11.0-2-windows-x64-binaries\pgsql\bin>initdb -D C:/Users/myuser/pgdataTest -U postgres -E UTF8

D:\postmaster_standalone\postgresql-11.0-2-windows-x64-binaries\pgsql\bin>pg_ctl -D C:/Users/myuser/pgdataTest start
waiting for server to start....2018-11-20 23:06:37.912 IST [14540] LOG:  listening on IPv6 address "::1", port 5432
2018-11-20 23:06:37.912 IST [14540] LOG:  listening on IPv4 address "127.0.0.1", port 5432
2018-11-20 23:06:38.231 IST [11352] LOG:  database system was shut down at 2018-11-20 23:05:02 IST
2018-11-20 23:06:38.385 IST [14540] LOG:  database system is ready to accept connections
 done
server started

D:\postmaster_standalone\postgresql-11.0-2-windows-x64-binaries\pgsql\bin>psql -U postgres
psql (11.0)
WARNING: Console code page (437) differs from Windows code page (1252)
         8-bit characters might not work correctly. See psql reference
         page "Notes for Windows users" for details.
Type "help" for help.

postgres=# 

In my CentOS , I checked with uname -m command and it returns x86_64. From the above link I downloaded the binaries for version 10.6 of Linux x86-64.

Then, I executed similar steps as in Windows in the below order, but the server is not starting:

[cloudera@quickstart bin]$ initdb -D /home/cloudera/pgdata -U postgres -E UTF8 
The files belonging to this database system will be owned by user "cloudera".
This user must also own the server process.
-----
-----
The database cluster will be initialized with locale en_US.UTF-8.
Success. You can now start the database server using:

    postgres -D /home/cloudera/pgdata
or
    pg_ctl -D /home/cloudera/pgdata -l logfile start

[cloudera@quickstart bin]$ pg_ctl -D /home/cloudera/pgdata/ start
server starting
[cloudera@quickstart bin]$ 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"?
[cloudera@quickstart bin]$ psql -U postgres
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"?

Am I making any mistake? Kindly help.

Laurenz Albe
  • 209,280
  • 17
  • 206
  • 263

1 Answers1

0

The PostgreSQL binary you are using must use a changed default value for unix_socket_directories, and the user that starts the server doesn't have permissions to write there.

Either edit /home/cloudera/pgdata/postgresql.conf and set

unix_socket_directories = /tmp

or start the server with

pg_ctl -D /home/cloudera/pgdata/ -o '-k /tmp' start

To connect, use

psql -h /tmp -U postgres -d postgres
Laurenz Albe
  • 209,280
  • 17
  • 206
  • 263
  • It is still not working and failing with below error: I edited the postgresql.conf file as you suggested. Then ran below steps: [cloudera@quickstart bin]$ pg_ctl -D /home/cloudera/pgdata -o '-k /tmp' start server starting [cloudera@quickstart bin]$ psql -h /tmp psql: FATAL: database "cloudera" does not exist [cloudera@quickstart bin]$ – A.G.Progm.Enthusiast Nov 21 '18 at 14:50
  • Then use the `-U` and `-d` options to `psql` as indicated in my updated answer. – Laurenz Albe Nov 21 '18 at 18:14
  • It starts using -U and -d options to psql. But unlike windows while running pg_ctl it does not display host and port information as: listening on IPv4 address "127.0.0.1", port 5432 . So while connecting to the database through Perl I do not have the host and port information of the postgresql server. Thanks. – A.G.Progm.Enthusiast Nov 25 '18 at 17:23
  • Well, that's a completely different problem, right? – Laurenz Albe Nov 25 '18 at 18:24
  • Right, that's the reason I pasted the entire screen shots while running it from windows. I need to know the host and port number. otherwise it is difficult to work with it. – A.G.Progm.Enthusiast Nov 26 '18 at 03:48
  • You can *always* use 127.0.0.1 and port 5432. – Laurenz Albe Nov 26 '18 at 03:57
  • 127.0.0.1 and 5432 not working, I am wondering after firing pg_ctl it never says 'server started..done '. Only saying server starting. Not sure if I am missing something. I also tried lsof command but of no help. Thanks – A.G.Progm.Enthusiast Nov 27 '18 at 19:08
  • Did you try `::1` as address? You should first figure out if your server is running or not. Look at the log file. – Laurenz Albe Nov 27 '18 at 19:15
  • my server is running and I am able to create sample tables by running the psql command you mentioned. what is ::1 , should I use that instead of 127.0.0.1 ? – A.G.Progm.Enthusiast Nov 28 '18 at 07:18
  • Ok, I am confused. One comment ago you said it was not working... If it is working for you, let's stop the discussion. – Laurenz Albe Nov 28 '18 at 07:26
  • actually sometimes I am able to get into the command prompt and create table using the psql command you mentioned and sometimes not. But both the times the pg_ctl is printing server is starting. Thanks – A.G.Progm.Enthusiast Nov 28 '18 at 07:35