主要根据以下配置完成,但是最后几步没有设置postgresql自动启动
1、下载postgresql最新版:
2、解压文件:
tar zxvf postgresql-8.3.7.tar.gz
cd postgresql-8.3.7
3、配置:
./configure --prefix=/usr/local/pgsql
4、编译:
make
5、安装:
make install
6、创建用户组和用户:
groupadd postgres
useradd -g postgres postgres
7、创建数据库库文件存储目录、给postgres赋予权限:
mkdir /usr/local/pgsql/data
cd /usr/local/pgsql
chown postgres.postgres data
8、初始化数据库目录:
切换用户
su - postgresql
初始化数据
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
启动数据库
/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
9、配置监听地址和端口:
vi /usr/local/pgsql/data/postgresql.conf
取消以下两行的注释
listen_addresses = '*'
port = 5432
10、允许远程连接:
vi /usr/local/pgsql/data/pg_hba.conf
添加
host all all 192.168.1.0/24 trust
每项的具体意思在配置文件中有详细说明
配置iptables让远程主机能访问:
vi /etc/sysconfig
添加
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
service iptables restart
11、让postgresql数据库随系统启动而启动:
将启动脚本拷贝到/etc/init.d/目录下,具体执行如下命令:
cd /etc/rc.d/init.d
cp (第一步解压的安装文件目录)/postgresql-8.3.7/contrib/start-scripts/linux postgresql
chmod +x postgresql
vi postgresql
prefix=/usr/local/pgsql
PGDATA="/usr/local/pgsql/data"
PGUSER=postgres
PGLOG="/var/log/pgsql.log"
chkconfig --add postgresql
启动数据库:
service postgresql start
配置完毕 。
第二部分:安装postgis
1.首先预安装proj4,geos,libxml2(fedora16自带)
2./*********前提条件具备了,下面开始安装PostGIS,软件是在postgres用户下安装的,所以下面命令提示符为$**********/
$ ./configure --with-pgconfig=/usr/local/pgsql/bin/pg_config --with-projdir=/usr/local/proj --with-geosconfig=/usr/local/geos/bin/geos_config
<==配置信息比较多,
<== --with-pgconfig是指定PostgreSQL的配置文件
<== --with-projdir指定proj的安装目录
<== --with-geosconfig则是指定geos库的配置文件,
<==另外还有--with-xml2config选项,如果libxml2是默认安装的则省略这个选项,否则还需要指定这个选项到libxml2的配置文件
<==熟悉windows环境下的postgis就会指定,将shape文件导入到数据库中还有个图形界面shp2pgsql-gui,这个可以用--with-gui指定
$ make <==编译
$ make install <==安装postgis
其实安装都是这几个步骤,熟悉linux的朋友只要./configure阶段注意一些配置信息既可顺利安装。
3.
测试安装是否正确-----创建空间数据库。
熟悉windows环境下postgis的朋友,都会注意到,安装了postgis后,pgsql中多了一个数据库template_postgis,这是个空间数据库的模
板,其实就是个空间数据库。而在linux环境下通过源码安装的postgis,默认没有创建这个空间数据库,下面我就用创建者个模板空间数据库来验证
上面的安装是否正确。一旦创建了一个空间数据库模板,以后每次创建空间数据库只要在这个模板空间数据库上创建就可以了,省时省力!
/*****************如果不熟悉pgsql相关命令的可以参考本博客的《创建PostGIS空间数据库》******************************/
# su - postgres <==切换到postgres用户下
$ createdb template_postgis <==创建数据库,此时,该数据库还没有具备空间特性
$ psql -f /usr/local/pgsql/share/contrib/postgis-1.5/postgis.sql -d template_postgis
<==执行postgis.sql脚本,创建相关空间数据库相关的函数,类型,操作符等
<==执行完这个脚本,该数据库就具有了空间特性了
$createdb [-U username] -T template_postgis my_spatial_db
<==下次再创建数据库,只要以这个模板就可以了,不必每次都执行这个脚本,-U指定用户名,默认就是postgres
$psql my_spatial_db <==连接到创建的空间数据库
my_spatial_db=# select postgis_full_version(); <== 查询postgis的版本信息,包含用到的三个库信息
postgis_full_version