文档章节

Linux下源码安装PostgreSql和PostGIS

Kilar
 Kilar
发布于 2016/04/12 16:18
字数 1109
阅读 446
收藏 4

http://www.postgresonline.com/journal/archives/362-An-almost-idiots-guide-to-install-PostgreSQL-9.5,-PostGIS-2.2-and-pgRouting-2.1.0-with-Yum.html


一、源码安装PostgreSql

1、检查gcc版本

Shell代码  收藏代码

  1. gmake --version  

GNU make版本3.80以上。


  删除系统默认安装

    yum remove postgresql -y

  安装依赖

   yum -y install readline-devel readline -y

 

2、下载源码

下载地址:http://www.postgresql.org/ftp/source/

选择版本,下载。

 

3、解压

Shell代码  收藏代码

  1. gunzip postgresql-9.3.4.tar.gz  

  2. tar xf postgresql-9.3.4.tar  

 

4、编译安装

Shell代码  收藏代码

  1. ./configure  --prefix=/usr/local/postgres  --with-libxml  --with-libxslt

Shell代码  收藏代码

  1. make

要安装PostGIS需要安装PostgreSql的一些额外包,所以需要编译所有内容。

Shell代码  收藏代码

  1. make install

安装所有内容。

 

二、配置

1、添加用户

PostgreSql默认不能用root启动,所以需要添加用户 

Shell代码  收藏代码

  1. root# adduser postgres  

 

2、设置环境变量

Shell代码  收藏代码

  1. root# vi /etc/profile  

 添加:

Shell代码  收藏代码

  1. LD_LIBRARY_PATH=/usr/local/pgsql/lib  

  2. export LD_LIBRARY_PATH  

  3. PATH=/usr/local/pgsql/bin:$PATH  

  4. export PATH  

 保存profile文件。

Shell代码  收藏代码

  1. source /etc/profile  

 使环境变量生效。

 

 三、初始化数据库

1、创建数据库目录,给postgres用户权限。

Shell代码  收藏代码

  1. su root  

  2. mkdir /usr/local/pgsql/data  

  3. chown postgres /usr/local/pgsql/data  

 2、初始化数据库 Shell代码  收藏代码

  1. root# su postgres  

  2. postgres$ initdb -E UTF8 -D /usr/local/pgsql/data  

 如果只有一个存储目录,可以设到环境变量中

export PGDATA=/usr/local/pgsql/data

 

如果initdb提示编码冲突,可以通过下面的命令修改服务器字符集

Shell代码  收藏代码

  1. export LC_ALL="UTF8"  

  2. export LANG="UTF8"  


现在如果启动数据库,本机就可以访问数据库了。

 

四、设置网络连接

1、配置监听IP 

Shell代码  收藏代码

  1. vi /usr/local/pgsql/data/postgresql.conf  

 其中listen_addresses行修改为:listen_addresses = '*'

这样允许所有ip。

 

2、设置允许连接地址

Shell代码  收藏代码

  1. vi /usr/local/pgsql/data/pg_hba.cnf  

 添加一个局域网连接许可

 

host   all   all   192.168.0.0/16   md5

#允许所有ip的连接

#host   all   all   0.0.0.0/0   md5

 

具体设置可参见:http://www.postgresql.org/docs/9.3/static/auth-pg-hba-conf.html

 

3、修改iptables

如果iptables有限制的话,需要放开postgres的连接端口

Shell代码  收藏代码

  1. service iptables start  

  2. iptables -I INPUT 7 -p tcp --dport 5432:5438 -j ACCEPT  

  3. service iptables save  

  4. service iptables restart  

 

五、启动关闭

1、启动数据库

Shell代码  收藏代码

  1. pg_ctl start -l logfile  

 开机启动:在/etc/rc.local中加

 

su postgres -c '/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data -l /usr/local/pgsql/data/serverlog'

 

2、关闭数据库

Shell代码  收藏代码

  1. pg_ctl stop -m f  


3、查看运行状态 

Shell代码  收藏代码

  1. pg_ctl status  

 

六、数据库中创建用户

su postgres

psql -d postgres  #-d是连接数据库的名称,默认是postgres,所以这里只需要psql就可以。

CREATE ROLE root WITH LOGIN PASSWORD 'a123456' [CREATEDB|SUPERUSER];

 

查看用户

select * from pg_roles;

 

查看数据库

select datname from pg_database;

 

七、安装PostGis的前提库

需要前提安装Proj、GEOS、LibXML2、JSON-C、GDAL

如果系统中没有安装则安装。

 

1、Proj (下载路径 http://download.osgeo.org/proj/)

Shell代码  收藏代码

  1. tar xzvf proj-4.7.0.tar.gz  

  2. cd proj-4.7.0  

  3. ./configure   --prefix=/usr/local/proj/

  4. make  

  5. make install  

 

2、geos(下载路径  http://trac.osgeo.org/geos/)

Shell代码  收藏代码

  1. tar jxvf geos-3.4.2.tar.bz2  

  2. cd geos-3.4.2  --prefix=/usr/local/geos/

  3. ./configure  

  4. make  

  5. make install  

 

3、libxml2 (yum安装即可)

Shell代码  收藏代码

  1. tar xzvf libxml2-2.9.0.tar.gz  

  2. cd libxml2-2.9.0  

  3. ./configure  

  4. make  

  5. make install  

 如果在libxml2的configure中出现的错误:cannot remove 'libtoolT':No such file or directory

解决方法:

修改configure文件

$vim configure

删除这一行:$RM "$cfgfile"

保存再运行 ./configure

 

安装默认路径/usr/local

安装后可能需要重新定义:

export LD_LIBRARY_PATH=/usr/local/lib

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

 

4、json-c (下载路径 http://pkgs.fedoraproject.org/repo/pkgs/json-c/)

Shell代码  收藏代码

  1. tar xzvf json-c-json-c-0.11-20130402.tar.gz  

  2. cd ./json-c-json-c-0.11-20130402  

  3. ./configure  --prefix=/usr/local/json-c/

  4. make  

  5. make install  

 

5、GDAL 下载路径 http://download.osgeo.org/gdal/)

Shell代码  收藏代码

  1. tar xzvf gdal-1.9.2.tar.gz  

  2. cd gdal-1.9.2  

  3. ./configure  --prefix=/usr/local/gdal/

  4. make  

  5. make install  

 

八、安装PostGis

Shell代码  收藏代码

  1. tar zxvf postgis-2.1.2.tar.gz  

  2. cd postgis-2.1.2  

  3. ./configure  --with-pgconfig=/usr/local/postgresql/bin/pg_config  --with-geosconfig=/usr/local/geos/bin/geos-config --with-projdir=/usr/local/proj/ --with-gdalconfig=/usr/local/gdal/bin/gdal-config --with-jsondir=/usr/local/json-c/

  4. make  

  5. make install  

    到postgresql源码包contrib/fuzzystrmatch下

  make && make install


九、检查postgis安装是否正确

连接数据库执行:

select * from pg_available_extensions where name like 'postgis%';



 

有以上3条就说明PostGis安装成功了。

 

 十、为数据库增加PostGis插件

CREATE EXTENSION fuzzystrmatch;

CREATE EXTENSION postgis_tiger_geocoder;

CREATE EXTENSION postgis;

psql -d [yourdatabase] -c "CREATE EXTENSION postgis_topology;

 

 安装客户端插件(不必须):

psql -p 5432 -c "CREATE EXTENSION adminpack;"

 

十一、简单备份

备份

pg_dump dbname | gzip > filename.gz

还原

gunzip -c filename.gz | psql dbname

或者

cat filename.gz | gunzip | psql dbname

 

 分文件备份

pg_dump dbname | split -b 1m - filename

还原

cat filename* | psql dbname


图形界面管理工具pgadmin

http://www.postgresql.org/ftp/pgadmin3/release/v1.22.1/win32/



http://blog.chinaunix.net/uid-7591044-id-1742988.html

http://blog.itpub.net/10037372/viewspace-1630742/



本文转载自:http://toplchx.iteye.com/blog/2090908

Kilar
粉丝 5
博文 64
码字总数 2561
作品 0
肇庆
程序员
私信 提问
postGIS在windows下的安装与应用(转载)

转载自:http://www.gispark.com/html/open%20source/2006/1024/388.html postGIS在windows下的安装与应用: 目前,windows下的版本,postgresql官方已经开始支持,目前是8.0.1版本。POSTGIS...

黄昏的金牛
2010/08/24
0
0
在 Docker 上搭建 PostGIS 数据库实现空间数据存储及可视化

此文旨在记录与传播在 Docker 上搭建 PostGIS 数据库实现空间数据存储及可视化的知识要点。 PostGIS 已经有PostGIS经验的大佬可以忽略此段了。解释 PostGIS 之前需要介绍 PostgreSQL (简称 ...

上官瑾文
2018/05/10
0
0
CentOS 7 yum 安装 postgis 和使用简单查询

本文安装环境是 CentOS7.6。安装版本是 postgresql-11 。推荐关闭SELinux和防火墙打开相应端口。 安装 postgresql-server。postgesql-server 官方安装教程 。 安装 postgis 。参考postgis 官...

白豆腐徐长卿
04/12
0
0
influxDB Ppostgis

PostGis 1.需要安装postgreSQL,postgis作为插件嵌入到postgreSQL中; 2.使用zip包直接安装,需要修改 makepostgisdbusingextensions.bat文件中的路径,用户名,密码,然后直接运行; 3.没有P...

courtzjl
2018/07/20
0
0
超图supermap sdx数据库用sql实现空间查询

在此介绍用sql对超图的空间数据库(sdx)进行空间查询,优点如下: 1。超图推荐的方式是用iobject,此方法要引入iobject 2。超图另一个推荐的方式是用iserver的REST接口,但web接口缺点在于性...

canneljls
2018/11/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Tedis:基于 TiKV 构建的 NoSQL 数据库

作者介绍: 陈东明,饿了么北京技术中心架构组负责人,负责饿了么的产品线架构设计以及饿了么基础架构研发工作。曾任百度架构师,负责百度即时通讯产品的架构设计。具有丰富的大规模系统构 ...

TiDB
17分钟前
0
0
linux命令

ls命令是linux下最常用的命令。ls命令就是list的缩写,缺省下ls用来打印出当前目录的清单。如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单。 通过ls 命令不仅可以查看linux文件...

WinkJie
24分钟前
0
0
你需要的物流运输类报表,这里都有

你需要的物流运输类报表,都在这里 葡萄城报表模板库是一款免费的报表制作、学习和参考工具,包含了超过 200 张高质量报表模板,涵盖了 16 大行业和 50 多种报表类型,为 30 余万报表开发者提...

葡萄城技术团队
31分钟前
1
0
像Java SE一样编写Java EE(ddd探索)

今天主要改写昨天的组合模式成Web系统。 容器接口为 public interface TreeProduct { /** * 展示所有产品 * @return */ List<TreeProduct> allProducts();...

算法之名
32分钟前
0
0
Django Model 模型建立

Django Model 模型 Django Model层是Django的数据模型层,每一个Model类就是数据库中的一张表; 我们需要注意下面几点: model一般都是定义在不同的APP的models.py模块文件中,可以是一个,也...

彩色泡泡糖
41分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部