postgresql安裝,環境設定,密碼設定,c++呼叫libpqxx連結資料庫,解析jsonb格式

2020-09-29 19:00:19

本機環境:ubuntu16.04

一、原始碼安裝:
這裡選擇了postgresql10.13 版本:

  1. 下載解壓原始碼包: 自行官網下載
  2. 設定編譯環境:
cd postgresql10.13  
./configure --prefix=path

注:path 是指安裝路徑,eg:/home/username/soft/postgresql
如果出現錯誤 configure: error: readline library not found,
安裝相關庫:

sudo apt-get install libreadline-dev 
  1. 編譯安裝:
make && make install 
  1. 資料庫環境設定:
gedit ~/.bashrc  新增如下內容  
export PGHOME=/path             注:path 為安裝路徑 
export PGDATA=/path/data 
export PATH=$PATH:$PGHOME/bin:$PGHOME/data 
  1. 修改檔案許可權:
cd ../postgresql       注:postgresql 為安裝路徑 
mkdir data/ 
cd .. 
chmod -R 777 postgresql 
  1. 初始化:
 cd postgresql/bin 
./initdb -D ../data/   
  1. 開啟服務:
./pg_ctl -D ../data/ -l logfile start   每次開機需要手動開啟服務 
  1. 開啟資料庫:
./psql -d postgres -p 543

二、apt-get安裝:
在不同版本的ubuntu下安裝的postgresql版本也不一樣,過程和設定一樣。
ubuntu16.04下安裝的是postgresql9.5
ubuntu20.04下安裝的是postgresql12

  1. 資料庫安裝: (apt-get 安裝)
 sudo apt-get install postgresql 
  1. 資料庫設定:
 sudo -u postgres psql 
 alter user postgres with password '123456';  (方便pgadmin和libpqxx連結) 
 sudo/etc/init.d/postgresql restart   (重新啟動服務) 
 psql -U postgres -d postgres -h 127.0.0.1 -p 5432 (啟動資料庫) 

安裝libpqxx:

sudo apt-get install libpqxx-dev 

安裝jsoncpp:

sudo apt-get install libjsoncpp-dev

想要呼叫這兩個庫,只需要在makefile或者cmakelist 中link它就可以,像這樣

target_link_libraries(test libpqxx.so libjsoncpp.so )

那麼如何使用libpqxx這個庫呢?這裡有很好的教學可以參考。

如果想要解析postgresql中的jsonb的資料型別,c++提供了很好的庫jsoncpp,可以將字串轉換為json格式進行處理。這裡是官方檔案

這裡是postgresql對jsonb格式的使用