PostgreSQL无法访问 我不能从C++访问数据库 每次它只是抛出错误:致命:用户“testuser”的身份验证失败。
我试过: 将postgresql11重新安装到postgresql12 创建用户 使用所有者testuser创建数据库 将pg_hba.conf localhost从对等更改为md5 多次更改用户的密码 重新启动计算机 重新启动服务 代码如下: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
#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
。也不确定这是否是剪切/粘贴错误,但去掉端口=
中的长空部分不会有什么坏处。