美文网首页
postgresql & postgis部署

postgresql & postgis部署

作者: myparamita | 来源:发表于2017-12-21 16:44 被阅读90次

    参考

    PostGIS Installation
    在Linux环境下编译安装配置PostGIS/PostgreSQL全过程
    安装PostGIS(Linux篇)

    下载源码

    Postgresql源码
    GDAL源码
    Proj源码
    Geos源码 依赖gdal
    libxml源码
    PostGIS源码 依赖gdal proj geos libxml

    部署

    1. Postgresql部署

    mkdir /usr/local/pgsql
    tar zxf postgresql-8.4.0.tar.gz
    cd postgresql-8.4.0
    ./configure –prefix=/usr/local/pgsql    #配置
    make                                    #编译
    make install                            #安装
    

    2. gdal proj geos libxml

    同上

    3. postgis

    ./configure –prefix=/usr/local/postgis 
        --with-pgconfig=/var/local/pgsql/bin/pg_config
        --with-gdalconfig=/var/local/gdal/bin/gdal-config
        --with-geosconfig=/var/local/pgsql/bin/geos-config
        --with-xml2config=/var/local/libxml/bin/xml2-config
        --with-projdir=/var/local/proj
    

    4. postgresql & postgis配置

    #1. 创建PostgreSQL的用户,设定密码
    adduser postgres
    
    #2. 创建PostgreSQL的数据库目录,修改目录的权限属性
    mkdir /usr/local/pgsql/data
    chown -R postgres /usr/local/pgsql
    
    #3. 初始化数据库并启动
    #   以postgres用户登陆
    su postgres
    /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
    #   启动数据库服务器
    pg_ctl start -D /usr/local/pgsql/data –l pgsql.log
    
    #4. 设置远程可访问数据库
    vi /usr/local/pgsql/data/postgresql.conf
    #   把listen_address = 'localhost' 改为 
    listen_address = '*'
    
    vi /usr/local/pgsql/data/pg_hba.conf
    #   在文件最后加入:
    host  all  all  192.168.1.0/24  md5
    #   为postgres用户设置密码
    su - postgres
    -base-4.2$ psql
    postgres=# \password postgres 
    
    #   停止数据库服务
    /usr/local/pgsql/bin/pg_ctl stop -D /usr/local/pgsql/data
    #   重新启动数据库
    /usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data –l pgsql.log
    
    #5. 创建数据库
    #   切换到postgres用户
    su postgres
    #   创建数据库gisdb
    /usr/local/pgsql/bin/createdb gisdb
    
    #6. 增加动态链接库的搜索路径
    vi /etc/ld.so.conf
    #   在最后添加四行:
    /usr/local/lib
    /usr/local/proj4/lib
    /usr/local/geos/lib
    /usr/local/pgsql/lib
    #   运行ldconfig命令,使以上修改生效:
    /sbin/ldconfig
    
    #7. 创建postgis空间数据库(使用postgis提供的sql)
    #   在gisdb上创建postgis的函数、数据类型等资源
    /usr/local/pgsql/bin/psql -h 127.0.0.1 -d gisdb -U postgres -f /usr/local/pgsql/share/contrib/postgis-2.4/postgis.sql
    #   在gisdb上创建空间参考表
    /usr/local/pgsql/bin/psql -h 127.0.0.1 -d gisdb -U postgres -f /usr/local/pgsql/share/contrib/postgis-2.4/spatial_ref_sys.sql
    #   完成postgis空间数据库创建
    

    5. 导入shapefile数据到postgresql

    shp2pgsql -W "UTF-8" D:\branch.shp branch > D:\branch.sql
    #这里的-W "UTF-8"代表字符编码的转换。D:\branch.shp则是要生成sql脚本的shp文件.
    #branch是创建数据表的表名,>不能少, D:\branch.sql则是要生成SQL文件的路径
    
    #生成成功后命令提示符会显示如下:  
    #Shapefile type: Point  
    #Postgis type: POINT[2]  
    
    1. 执行该SQL语句文件,导入数据到数据库template_postgis中
    psql -d gisdb -f D:\branch.sql postgres  
    #其中 gisdb是数据库名,postgres是该数据库的用户  
    #执行成功后,刷新该数据库,就可以看到表branch 
    

    错误

    1. geos make报错

    postgres install + postgis install(二)

    2. psql导入.sql数据报错:psql:...sql relation "branch" does not exist

    postgis未正确安装

    相关文章

      网友评论

          本文标题:postgresql & postgis部署

          本文链接:https://www.haomeiwen.com/subject/bgvawxtx.html