Msg04095.html: Difference between revisions

From Linix VServer
Jump to navigationJump to search
(Restored content from Wayback Machine)
 
(No difference)

Latest revision as of 23:03, 10 November 2025


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vserver] postgres SQL[edit]


  • From: Sam Vilain
  • Date: Wed, 20 Aug 2003 14:51:54 +0100 (BST)



    I am getting this error when trying to start postgresql (postmaster)
    in a vserver:PGSTAT: bind(2): Cannot assign requested address

Something else has the port open, probably a postgres instance running
on the master server.  Running `netstat -plunt | grep 5432' should
show you which process is bound to the `postgres' port (5432).  You
may need to run it within `chcontext --ctx 1 /bin/bash' to be sure to
see all processes that might have it open.

The thing to look for is lines like this:

tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 560/perl

(there will be more spaces in the actual output of the program)

The process above (webmin, a perl program, with PID 560) is
`listening' or `bound' to 0.0.0.0, which means `all IPv4 interfaces on
the machine'.  Most daemons will do this by default, thereby grabbing
the port for all interfaces on the machine.

In a vserver context with IP restrictions (assuming Alex/Herbert
haven't changed this on me :)), when a process tries to bind to
0.0.0.0, it is transparently altered to a bind to the primary address
of their vserver.  This bind call fails, because another process
already has it open.

There are three simple solutions;

   1. run the daemon (postgres) with `chbind' to restrict it from
      binding to anything other than the master server's IP address -
      done by editing the /etc/init.d/* script.

   2. configure the daemon to restrict it's binding to the master
      server's IP address, see the manual.

   3. turn off the daemon in the master server, perhaps it is not
      needed

(Paul - I couldn't see the answer to this common `bind failed' message
in the FAQ - perhaps it deserves an entry?)
-- 
Sam Vilain, sam@xxxxxxxxxx

I would have said yes to abortion if only it was right. I mean, yeah
it's right. Well no it's not right that's why I said no to it.
 - George W. Bush, South Carolina, February 14, 2000