Linux下源码安装PostgreSql和PostGIS

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%';


Linux下源码安装PostgreSql和PostGIS_第1张图片
 

有以上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/



你可能感兴趣的:(Linux下源码安装PostgreSql和PostGIS)