1

私はPostgreSQLを学ぼうとしている完全な初心者です。libpq を使用して C プログラムを介して postgres サーバーに接続しようとしています。

サーバーのステータスは次のとおりです。

home/planb/postgresql-9.2.4/Project status -o "-p 5555"
pg_ctl: server is running (PID: 2338)
/usr/local/pgsql/bin/postgres "-D" "/home/planb/postgresql-9.2.4/Project" "-p5555"

コンパイルするときは、次を使用します。

gcc -I /usr/local/pgsql/include -L /usr/local/pgsql/lib test.c -lpq

./a.out でプログラムを実行すると、次のように表示されます。

Connection error

私は PQconnectdb を正しく使用していないと思いますが、他のことが原因である可能性があります。

ここに私のCファイルがあります:test.c

#include <stdio.h>
#include <stdlib.h>  
#include <libpq-fe.h>

int main(int argc, char* argv[])
{
//Start connection
PGconn* connection = PQconnectdb("hostaddr=168.105.127.3 port=5555 dbname=Project username=postgres password=password");

if (PQstatus(connection) ==CONNECTION_BAD)
    {
    printf("Connection error\n");
    PQfinish(connection);
    return -1; //Execution of the program will stop here
    }
    printf("Connection ok\n");
    //End connection
    PQfinish(connection);
    printf("Disconnected\n");
    return 0;
}

どんな入力でも大歓迎です、ありがとう!

理解した!

有効な hostaddr を使用していませんでした。私はそれを次のように置き換えました:

host=localhost

dbname=Project も削除しました。実行すると、次のようになります。

Msg: Connection ok
Disconnected
4

2 に答える 2

1

これが私の問題の解決策です:

有効な hostaddr を使用していませんでした。自分のローカルサーバーに接続する正しい方法は次のとおりです。

host=localhost

dbname=Project も削除しました。実際のデータベースではないというメッセージが表示されました。PQconnectdb で dbname を呼び出す必要はなかったと思います。

これらの変更を加えて実行すると、次のようになります。

Msg: Connection ok
Disconnected
于 2013-10-02T00:50:18.527 に答える