我已经在我的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加密的。所以我在谷歌上搜索。这个问题几乎没有问题。我在libpq文件夹中找到了一个名为" md5.h"的头文件,并且有一个名为" pg_md5_hash"的功能,我尝试了一下,并出现许多链接错误。谁能给我一些建议?谢谢。
您不必自己加密密码。Libpq 正在根据 pg_hba.conf 配置选择身份验证方法。
你的连接远非正确。您提供了密码,但至少错过了数据库和用户名。