PostgreSQL无法访问 我不能从C++访问数据库 每次它只是抛出错误:致命:用户“testuser”的身份验证失败。

PostgreSQL无法访问 我不能从C++访问数据库 每次它只是抛出错误:致命:用户“testuser”的身份验证失败。,c++,postgresql,C++,Postgresql,我试过: 将postgresql11重新安装到postgresql12 创建用户 使用所有者testuser创建数据库 将pg_hba.conf localhost从对等更改为md5 多次更改用户的密码 重新启动计算机 重新启动服务 代码如下: #include "gtest/gtest.h" #include <iostream> #include <pqxx/pqxx> using std::cin; using std::cout; using

我试过:

将postgresql11重新安装到postgresql12 创建用户 使用所有者testuser创建数据库 将pg_hba.conf localhost从对等更改为md5 多次更改用户的密码 重新启动计算机 重新启动服务

代码如下:

#include "gtest/gtest.h"
#include <iostream>
#include <pqxx/pqxx>

using std::cin;
using std::cout;
using std::cerr;
using namespace std;
using namespace pqxx;

int main() {
    try {
        connection C("dbname = relay user = testuser password = 1234 hostaddr = 127.0.0.1 port =             5432");
        if (C.is_open()) 
            cout << "Opened database successfully: " << C.dbname() << endl;
        else {
            cout << "Can't open database" << endl;
            return 1;
        }

        C.close();
    } catch (const std::exception &e) {
             cerr << e.what() << std::endl;
             return 1;
    }
}

TEST(postgreDB_test_trivial, trivial_test) {
     main();
}
#包括“gtest/gtest.h”
#包括
#包括
使用std::cin;
使用std::cout;
使用std::cerr;
使用名称空间std;
使用名称空间pqxx;
int main(){
试一试{
连接C(“dbname=relay user=testuser password=1234 hostaddr=127.0.0.1 port=5432”);
如果(C.是开着的())

问题是,在我重新启动服务后,卸载Postgres11和安装Postgres12会给pg_hba.conf留下不同的设置,因此我需要将pg_hba.conf中的所有内容更改为
trust
,以使其正常工作

问题是卸载Postgres11和安装Postgres12会给pg_hba.conf留下不同的设置重新启动服务后,我需要将pg_hba.conf中的所有内容更改为
trust
,以使其正常工作

请使用
testuser
访问规则添加部分
pg_hba.conf
。如果您确实在使用md5,则不会出现此错误。您尝试对pg_hba.conf所做的任何操作都没有成功。请确保您编辑了正确文件的正确行,然后重新启动服务器。并向我们显示pg_hba.confIn的所有未注释行。除上述内容外,我将使用
host
而不是
hostaddr
。也不确定这是否是剪切/粘贴错误,但清除
端口中的长空部分不会有任何伤害
。请使用
testuser
访问规则添加部分
pg_hba.conf
。如果您确实在使用md5,则不会出现此错误。您尝试对pg_hba.conf执行的任何操作都没有成功。请确保编辑正确文件的正确行,然后重新启动服务器。并向我们显示所有的错误pg_hba.confIn的注释行除上述内容外,我将使用
host
而不是
hostaddr
。也不确定这是否是剪切/粘贴错误,但去掉
端口=
中的长空部分不会有什么坏处。