首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用libpqxx连接到questDB

使用libpqxx连接到questDB
EN

Stack Overflow用户
提问于 2020-07-02 10:20:01
回答 1查看 172关注 0票数 1

我在使用libpqxx连接到QuestDB时遇到问题,我可以按照这里的说明使用postgresql客户端建立连接:https://questdb.io/docs/guidePSQL

但是,当我使用我的简单程序连接到QuestDB时,这或多或少是对标准的"get me started“程序进行了稍微修改:https://github.com/jtv/libpqxx

代码语言:javascript
复制
#include <iostream>
#include <pqxx/pqxx>

int main(){
   try
   {
    pqxx::connection C(
    "user=admin "
    "hostaddr=127.0.0.1 "
    "password=quest "
    "dbname=qdb"
    "port=8812 ");


  std::cout << "Connected to " << C.dbname() << std::endl;
  pqxx::work W{C};

  pqxx::result R{W.exec("SELECT name FROM employee")};

  std::cout << "Found " << R.size() << "employees:\n";
  for (auto row: R)
     std::cout << row[0].c_str() << '\n';

  std::cout << "Doubling all employees' salaries...\n";
  W.exec0("UPDATE employee SET salary = salary*2");

  std::cout << "Making changes definite: ";
  W.commit();
  std::cout << "OK.\n";
 }
 catch (std::exception const &e)
 {
    std::cerr << e.what() << '\n';
    return 1;
 }
   return 0;
}

。。我得到一个错误:

无法连接到服务器:连接被拒绝服务器是否在主机"127.0.0.1“上运行并接受端口5432上的TCP/IP连接?

什么也可能使事情变得复杂,我在任何地方都找不到pg_hba.conf,这些仍然是PostgreSQL10版本中的东西吗?我有/usr/lib/postgresql/10,但没有配置文件。我也搜索了机器..什么也没找到。任何帮助都将不胜感激。

谢谢你

EN

回答 1

Stack Overflow用户

发布于 2020-07-03 16:36:53

libpqxx的官方文档指出:

连接字符串由用空格分隔的attribute=value对组成,例如"user=john password=1x2y3z4“。reference

您的连接字符串为:

代码语言:javascript
复制
    pqxx::connection C(
"user=admin "
"hostaddr=127.0.0.1 "
"password=quest "
"dbname=qdb"
"port=8812 ");

qdb后缺少一个空格,因此正确的连接字符串为:

代码语言:javascript
复制
    pqxx::connection C(
"user=admin "
"hostaddr=127.0.0.1 "
"password=quest "
"dbname=qdb "
"port=8812 ");

我刚试过,它对我来说很好。

另一方面,下面的SQL语句:

代码语言:javascript
复制
 W.exec0("UPDATE employee SET salary = salary*2");

将不起作用,UPDATE尚不支持 by QuestDB。您可以在官方文档here上找到有关SQL支持的更多详细信息。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62687971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档