我在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信息不正确。您提供了密码,但至少缺少数据库和用户名。