Обсуждение: Problems between Mandrake and pg
Hi
We are a group studying at Aalborg University. We are at the moment
developing a postgresql-db (7.1.3) on Mandrake 8.0, which we intend to
access via libpq. But at the moment we can't even connect to the db.
The connection is refused and we are asked if the -i option has been set
in the startup of postmaster:
    [01gr551@ika dbkode]$ ./test1
    Connection to host=localhost dbname=01gr551 failed, PQconnectPoll()
-- connect()
     failed: Connection refused
            Is the postmaster running (with -i) at 'localhost'
            and accepting connections on TCP/IP port '5432'?
The program we are running:
    #include <stdlib.h>
    #include <stdio.h>
    #include </usr/local/pgsql/include/libpq-fe.h>
    int main()
    {
       PGconn *conn;
       const char *connection_str = "host=localhost dbname=01gr551";
       conn = PQconnectdb(connection_str);
       if (PQstatus(conn) == CONNECTION_BAD) {
          fprintf(stderr, "Connection to %s failed, %s", connection_str,
          PQerrorMessage(conn));
       } else {
          printf("Connected OK\n");
       }
       PQfinish(conn);
       return EXIT_SUCCESS;
    }
From the user it cannot be seen if postmaster is running (pg_ctl
status), but from root it is apparent that it does. It is true, that we
do not have the -i option on, but we haven't found a way to change it
that really works. We have tried changing the options in a file called
postmaster.opts but it didn't work.
Does anyone have a suggestion of what to do?
Yours in anticipation
Ryan Hansen, on behalf of group 01gr551 on AAU
			
		Hi
On Wednesday 21 November 2001 14:44, Ryan Rohde Hansen wrote:
> We are a group studying at Aalborg University. We are at the moment
> developing a postgresql-db (7.1.3) on Mandrake 8.0, which we intend to
> access via libpq. But at the moment we can't even connect to the db.
> The connection is refused and we are asked if the -i option has been set
> in the startup of postmaster:
>
>     [01gr551@ika dbkode]$ ./test1
>     Connection to host=localhost dbname=01gr551 failed, PQconnectPoll()
> -- connect()
>      failed: Connection refused
>             Is the postmaster running (with -i) at 'localhost'
>             and accepting connections on TCP/IP port '5432'?
>
> The program we are running:
>
>     #include <stdlib.h>
>     #include <stdio.h>
>     #include </usr/local/pgsql/include/libpq-fe.h>
>
>     int main()
>     {
>
>        PGconn *conn;
>        const char *connection_str = "host=localhost dbname=01gr551";
Try leaving out the "host=localhost" part of the above string.
If the backend process isn't accepting connections on a TCP/IP port,
specifying a host name (even if it's the name of the local machine)
forces a connect to the port, which causes the above error.
See also:
http://www.postgresql.org/idocs/index.php?postmaster-start.html#CLIENT-CONNECTION-PROBLEMS
HTH
Ian Barwick
			
		
			
				 At 02:44 PM 11/21/01 +0100, Ryan Rohde Hansen wrote:
You MUST have the -i switch set, or else you can only make connections to the database from the machine it run on.
Attached are two scripts. One is for FreeBSD, the other is for Solaris.
The FreeBSD script goes in /usr/local/etc/rc.d and the Solaris one goes in /etc/init.d (and then run it by hand once with the argument "links").
I don't know much about Mandrake, but these scripts should give you the idea.
			
		
		
			It is true, that we do not have the -i option on, but we haven't found a way to change it that really works.
You MUST have the -i switch set, or else you can only make connections to the database from the machine it run on.
Attached are two scripts. One is for FreeBSD, the other is for Solaris.
The FreeBSD script goes in /usr/local/etc/rc.d and the Solaris one goes in /etc/init.d (and then run it by hand once with the argument "links").
I don't know much about Mandrake, but these scripts should give you the idea.