本机环境:ubuntu16.04
一、源码安装:
这里选择了postgresql10.13 版本:
- 下载解压源码包: 自行官网下载
- 配置编译环境:
cd postgresql10.13
./configure --prefix=path
注:path 是指安装路径,eg:/home/username/soft/postgresql
如果出现错误 configure: error: readline library not found,
安装相关库:
sudo apt-get install libreadline-dev
- 编译安装:
make && make install
- 数据库环境配置:
gedit ~/.bashrc 添加如下内容
export PGHOME=/path 注:path 为安装路径
export PGDATA=/path/data
export PATH=$PATH:$PGHOME/bin:$PGHOME/data
- 修改文件权限:
cd ../postgresql 注:postgresql 为安装路径
mkdir data/
cd ..
chmod -R 777 postgresql
- 初始化:
cd postgresql/bin
./initdb -D ../data/
- 开启服务:
./pg_ctl -D ../data/ -l logfile start 每次开机需要手动开启服务
- 开启数据库:
./psql -d postgres -p 543
二、apt-get安装:
在不同版本的ubuntu下安装的postgresql版本也不一样,过程和配置一样。
ubuntu16.04下安装的是postgresql9.5
ubuntu20.04下安装的是postgresql12
- 数据库安装: (apt-get 安装)
sudo apt-get install postgresql
- 数据库配置:
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格式进行处理。这里是官方文档。