Atul Kumar <akumar14871@gmail.com> writes:
> Just to clarify that I am at root OS user, trying to create a test user
> using postgres user(-u) with create user command.
Given the reference to /var/run/postgresql, I'm suspecting that you
are running a server that thinks it should put its socket in /tmp,
but you have some copies of libpq on the machine that were built with
default socket location /var/run/postgresql. When you are root, you
are very likely using a different PATH that is finding a different
createuser program linked to a different libpq.so than when you are
not root.
A possible workaround is to add "-h /tmp" to your command when
running as root. Eventually you'd want to try to not have
multiple postgres installations on the machine.
regards, tom lane