我在win7笔记本电脑中安装了postgresql9.2.4,并编写了一个简单的程序来测试vs2008中的连接。代码如下:

#include "stdafx.h"
#include <windows.h>
#include "libpq-fe.h"


int _tmain(int argc, _TCHAR* argv[])
{
    const char *conninfo;
    PGconn     *conn;

    conninfo = "password = password";

    conn = PQconnectdb(conninfo);

    if (PQstatus(conn) != CONNECTION_OK)
    {
        printf("Connection to database failed: %s",
                PQerrorMessage(conn));
    }

    system("pause");
    return 0;
}


它显示了一个错误,说明运行身份验证后失败。
我知道这是关于密码的问题,应该对md5进行加密。因此我在google中搜索。关于此问题,几乎没有问题。我在libpq文件夹中找到了一个名为“ md5.h”的头文件,并具有一个名为“ pg_md5_hash”的函数”,我尝试了一下,但出现了许多链接错误。
谁能给我一些建议?
谢谢。

最佳答案

您不必自己加密密码。 Libpq根据pg_hba.conf配置选择身份验证方法。

您的conninfo信息不正确。您提供了密码,但至少缺少数据库和用户名。

08-04 07:11