title: getting error: "connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?" when trying to create a user with postgresql on centos
body: <p>complete error:</p>
  
  <pre><code>Creating 'pcore' PostgreSQL user... 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"?
  
  Connecting to PostgreSQL as 'pcore'... 
   ** Error occurred during execution: FATAL:  Ident authentication failed for user "pcore"
  </code></pre>
  
  <p>postgresql:</p>
  
  <pre><code>psql -U postgres template1
  psql (8.4.9)
  Type "help" for help.
  
  template1=# \l
                                    List of databases
     Name    |  Owner   | Encoding |  Collation  |    Ctype    |   Access privileges   
  -----------+----------+----------+-------------+-------------+-----------------------
   postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
   template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres
                                                               : postgres=CTc/postgres
   template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres
                                                               : postgres=CTc/postgres
  (3 rows)
  </code></pre>
  
  <p>linux:</p>
  
  <pre><code>lsb_release -a
  LSB Version:    :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch
  Distributor ID: CentOS
  Description:    CentOS release 5.7 (Final)
  Release:    5.7
  Codename:   Final
  </code></pre>
  
  <p>also:</p>
  
  <pre><code>ps -ef | grep post
  
  user   25055 25032  0 11:13 pts/1    00:00:00 grep post
  postgres 32104     1  0 Jan20 ?        00:00:00 /usr/bin/postmaster -p 5432 -D /var/lib/pgsql/data
  </code></pre>
  
  <p>There is no user pcore in /etc/passwd
  Could this be the problem, that postgresql expects one to one matching between linux users and postgresql users ?</p>
  
  <p>I am trying to create a user when this error occurs:</p>
  
  <pre><code># Database imports
  import pgdb as psql
  
  # This will create the 'pcore' user using `su` to run the
  # command as the postgres system user
  def createPsqlPcoreUser(new_pass):
      print "Creating 'pcore' PostgreSQL user...",
      sys.stdout.flush()
      cmd_list = ['su', '-', 'postgres', '-c','psql --host=%s -c '\
          '"CREATE USER pcore WITH PASSWORD \'%s\' CREATEDB"' % \
          (PSQL_SOCKET_PATH, new_pass)]
      p1 = subprocess.Popen(cmd_list,
          stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
      p1.wait()
      print p1.communicate()[0]
  </code></pre>
  
  <p>Additionally:</p>
  
  <pre><code> sudo -u postgres createuser pcore -P
  Enter password for new role: 
  Enter it again: 
  Shall the new role be a superuser? (y/n) y
  createuser: could not connect to database postgres: could not connect to server: No such file or directory
      Is the server running locally and accepting
      connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
  [root@localhost pcore]# service postgresql status
  postmaster (pid 28901 28900 28899 28898 28896 28894) is running...
  [root@localhost pcore]# ps -ef | grep post
  postgres 28894     1  0 00:21 ?        00:00:00 /usr/bin/postmaster -p 5432 -D /var/lib/pgsql/data
  postgres 28896 28894  0 00:21 ?        00:00:00 postgres: logger process                          
  postgres 28898 28894  0 00:21 ?        00:00:00 postgres: writer process                          
  postgres 28899 28894  0 00:21 ?        00:00:00 postgres: wal writer process                      
  postgres 28900 28894  0 00:21 ?        00:00:00 postgres: autovacuum launcher process             
  postgres 28901 28894  0 00:21 ?        00:00:00 postgres: stats collector process   
  </code></pre>