栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Linux下C/C++ 远程连接Pgsql报错

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux下C/C++ 远程连接Pgsql报错

could not connect to server: Connection refused
        Is the server running on host "192.168.198.133" and accepting
        TCP/IP connections on port 5432?

这是由于没有设置PostgreSQL允许被远程访问:

解决办法 第一步:修改postgresql.conf

postgresql.conf的位置在数据库目录中

这个数据库目录就是在初始化时设定的

pgsql/bin/initdb -D 数据库目录

我的数据库目录在 /home/brown/pgsrc_11.0_6318/db_test
而postgresql.conf就在 /home/brown/pgsrc_11.0_6318/db_test/postgresql.conf

在文件中添加一行(文件中已经有listen_addresses = localhost,但是被注释了)

listen_addresses = '*'

修改后:

第二步:修改pg_hba.conf

pg_hba.conf也在数据库目录下

添加一行:

host  all  all 0.0.0.0/0 md5

修改后:

第三步:重启pgsql

来到pgsql的安装目录下的bin目录
我的目录是psql/bin
输入命令:

  1. 关闭服务
./pg_ctl stop -D 数据库目录
  1. 打开服务
./pg_ctl start -D 数据库目录

我的目录结构

.
├── pgsql  # 我的pgsql安装目录
│   ├── bin  # 在bin下使用 ./pg_ctl
│   ├── include
│   ├── lib
│   └── share
├── pgsrc_11.0
│   ├── config
│   ├── contrib
│   ├── db_test  # 我的数据库目录
│   ├── doc
│   └── src

我的当前目录

[brown@bogon bin]$ pwd
/home/brown/pgsql/bin

关闭服务

./pg_ctl stop -D ../../pgsrc_11.0/db_test

开启服务

./pg_ctl start -D ../../pgsrc_11.0/db_test
第四步:测试连接

注意设置dbname, user, password, hostaddr

#include 
#include  

using namespace std;
using namespace pqxx;

int main(int argc, char* argv[]) {
   try {
   	  // 这里的dbname, user, password, hostaddr  都是根据你的情况设定的
      connection C("dbname = testdb user = postgres password = cohondob 
      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.disconnect ();
   } catch (const std::exception &e) {
      cerr << e.what() << std::endl;
      return 1;
   }
}
  • dbname:在启动数据库服务后,执行./psql 数据库名,这个数据库名就是dbname
  • user:pgsql的数据库用户
  • password:对应用户的密码
  • hostaddr:pgsql数据库的主机地址
    都设置好后,使用以下命令编译:
g++ test.cpp -lpqxx -lpq
./a.out

a.out的执行结果是:

Opened database successfully: 你的数据库名
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/920808.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号