Linux下源码安装PostgreSql和PostGIS

一、源码安装PostgreSql

1、检查gcc版本

gmake --version

GNU make版本3.80以上。

 

2、下载源码

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

选择版本,下载。

 

3、解压

gunzip postgresql-9.3.4.tar.gz
tar xf postgresql-9.3.4.tar

 

4、编译安装

./configure

配置的一些参数,请参考http://www.postgresql.org/docs/9.3/static/install-procedure.html

gmake world

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

gmake install-world

安装所有内容。

 

二、配置

1、添加用户

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

root# adduser postgres

 

2、设置环境变量

root# vi /etc/profile

 添加:

LD_LIBRARY_PATH=/usr/local/pgsql/lib
export LD_LIBRARY_PATH
PATH=/usr/local/pgsql/bin:$PATH
export PATH

 保存profile文件。

source /etc/profile

 使环境变量生效。

 

 三、初始化数据库

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

su root
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
 2、初始化数据库 
root# su postgres
postgres$ initdb -E UTF8 -D /usr/local/pgsql/data
 如果只有一个存储目录,可以设到环境变量中

export PGDATA=/usr/local/pgsql/data

 

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

export LC_ALL="UTF8"
export LANG="UTF8"

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

 

四、设置网络连接

1、配置监听IP 

vi /usr/local/pgsql/data/postgresql.conf
 其中listen_addresses行修改为:listen_addresses = '*'

这样允许所有ip。

 

2、设置允许连接地址

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的连接端口

service iptables start
iptables -I INPUT 7 -p tcp --dport 5432:5438 -j ACCEPT
service iptables save
service iptables restart

 

五、启动关闭

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、关闭数据库

pg_ctl stop -m f

3、查看运行状态 

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的前提库

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

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

 

1、Proj4

tar xzvf proj-4.7.0.tar.gz
cd proj-4.7.0
./configure
make
make install

 

2、GEOS

tar jxvf geos-3.4.2.tar.bz2
cd geos-3.4.2
./configure
make
make install

 

3、libxml2

tar xzvf libxml2-2.9.0.tar.gz
cd libxml2-2.9.0
./configure
make
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

tar xzvf json-c-json-c-0.11-20130402.tar.gz
cd ./json-c-json-c-0.11-20130402
./configure
make
make install

 

5、GDAL

tar xzvf gdal-1.9.2.tar.gz
cd gdal-1.9.2
./configure
make
make install

 

八、安装PostGis

tar zxvf postgis-2.1.2.tar.gz
cd postgis-2.1.2
./configure --with-pgconfig=/usr/local/pgsql/bin/pg_config
make
make install

 

九、检查postgis安装是否正确

连接数据库执行:

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



 

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

 

 十、为数据库增加PostGis插件

psql -d [yourdatabase] -c "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

 

 

 

 

你可能感兴趣的:(PostgreSQL,postgis)