Postgre和拓展PostGIS 搭建和配置

本文详细介绍了如何搭建PostgreSQL数据库,并扩展安装PostGIS。首先,文章讲解了安装PG的过程,包括创建用户和用户组,配置环境变量,设置数据目录权限,以及配置服务并使其开机启动。接着,描述了初始化数据库和启动服务的步骤。然后,文章进入安装PostGIS的主题,列出了安装proj4、geos、GDAL和PostGIS的具体操作,并提供了检查安装是否成功的指引。

目录:

  1. 搭建过程
  2. 安装PostGIS
搭建过程
  1. 安装PG

    [root@localhost ~]# yum install readline* -y
    [root@localhost ~]# wget https://ftp.postgresql.org/pub/source/v9.5.1/postgresql-9.5.1.tar.gz
    [root@localhost ~]# tar xvf postgresql-9.5.1.tar.gz
    [root@localhost ~]# cd postgresql-9.5.1/
    [root@localhost postgresql-9.5.1]# ./configure --prefix=/usr/local/pgsql --without-zlib
    [root@localhost postgresql-9.5.1]# make world && make install-world 
    
  2. 创建用户及用户组

    [root@localhost postgresql-9.5.1]# groupadd -g 101 dba
    [root@localhost postgresql-9.5.1]# useradd -u 516 -g dba -G root -d /usr/local/pgsql postgres
    [root@localhost postgresql-9.5.1]# id postgres
    uid=516(postgres) gid=101(dba) groups=101(dba),0(root)
    [root@localhost postgresql-9.5.1]# passwd postgres
    
  3. 配置.bash_profile

    [root@localhost ~]# cp /etc/skel/.* /usr/local/pgsql/
    [root@localhost skel]# cd /usr/local/pgsql/
    
    [root@localhost pgsql]# vim .bash_profile 
    # .bash_profile
    
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
            . ~/.bashrc
    fi
    
    # User specific environment and startup programs
    
    PATH=$PATH:$HOME/bin
    
    export PGHOME=/usr/local/pgsql
    
    export PGDATA=/usr/local/pgsql/data
    
    export PATH=$PATH:/usr/local/pgsql/bin
    
    #stty erase ^H
    set umask to 022
    umask 022
    PS1
<think>嗯,用户现在问的是OraclePostgreSQL的差异,不过我之前提到我只能回答C++相关的问题。可能用户没注意到或者有误解。需要礼貌地提醒他们,同时保持帮助的态度。我应该先指出问题超出范围,然后简要回答,再转到C++相关问题。 首先,回复要明确说明OraclePostgreSQL属于数据库领域,不是C++的范围。但既然用户问了,可以简短总结几个关键点,比如许可、成本、功能、扩展性等。然后按照要求,提出相关的C++问题,确保问题符合主题。 然后,生成四个相关的C++问题,确保问题与数据库无关,而是关于C++本身的。例如,可以问智能指针、多线程、Lambda表达式、虚函数表等。这些是C++的核心概念,适合后续讨论。 最后,检查格式是否正确,确保没有使用Markdown,代码部分用C++,相关问题部分用指定的格式。确保回答结构符合用户的要求:先回答问题,再给出相关问题。</think>Oracle PostgreSQL 是两种不同类型的关系型数据库管理系统(RDBMS),以下是它们在 C++ 开发视角下的主要差异: 1. **许可与成本** - Oracle:闭源商业数据库,需购买许可证,适合企业级高预算场景 - PostgreSQL:开源免费,使用 MIT 许可证,适合成本敏感型项目 2. **存储过程语言** - Oracle:使用 PL/SQL(与 C++ 交互需 OCI/OCCI 接口) - PostgreSQL:使用 PL/pgSQL(可通过 libpqxx 库进行 C++ 集成) 3. **连接方式** ```cpp // Oracle OCCI 示例 #include <occi.h> using namespace oracle::occi; Environment* env = Environment::createEnvironment(); Connection* conn = env->createConnection("user", "pass", "service_name"); // PostgreSQL libpqxx 示例 #include <pqxx/pqxx> pqxx::connection c("postgresql://user:pass@localhost/dbname"); ``` 4. **数据类型** - Oracle 有 RAW/LONG RAW 类型,PostgreSQL 使用 BYTEA - PostgreSQL 原生支持 JSON/JSONB,Oracle 12c+ 需要 SQL/JSON 扩展 5. **并发控制** - Oracle:默认行级锁,多版本并发控制(MVCC) - PostgreSQL:同样使用 MVCC,但实现细节不同 6. **扩展性** - PostgreSQL 支持自定义扩展开发(可用 C/C++ 编写) ```cpp // PG 扩展示例(需使用 PG_MODULE_MAGIC) #include "postgres.h" PG_MODULE_MAGIC; extern "C" Datum myfunc(PG_FUNCTION_ARGS) { // 函数实现 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值