为什么当我使用 soci 连接到 postgresql 时,我没有足够的数据库权限?



我可以正确地使用 soci 连接到 mysql 并执行 sql。但是同样的方式来发布gresql是行不通的。这是我的制作文件和主要.cpp:

all: main.cpp
g++ -Wall -g -o main main.cpp  -lpq -lsoci_core -lsoci_postgresql -ldl
clean:

这是主要的.cpp:

#include <soci/soci.h>
#include <soci/postgresql/soci-postgresql.h>
#include<iostream>
#include<istream>
#include<ostream>
#include<string>
#include<exception>
using namespace std;
using namespace soci;
int main() {
try {
session sql("postgresql://dbname=mydb_0");
int count ;
sql<< "select count(*) from student", into(count);
cout<<"count="<<count<<endl;
} catch (exception const &e) {
cerr<<"Error:" <<e.what()<<endl;
}
}

这是错误输出:

Error:Cannot execute query. Fatal error. 错误:  对关系 student 权限不够
while executing "select count(*) from student".

我可以在终端中执行 sql"select count(*) from student",但C++代码剂量不起作用,为什么?

好的,我已经自己解决了这个问题。与其他示例不同,我将"host=127.0.0.1"和"port=5432"添加到 init 语句中。是这样的:session sql(postgresql, "host=127.0.0.1 dbname=exampledb user=postgres password=123 port=5432");。我希望这个解决方案能帮助其他人。

相关内容

  • 没有找到相关文章

最新更新