一、源码安装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