ChinaUnix.net 首页 | 博客 | Linux | 论坛 | 人才 | 培训 | 知识库 | 资料 | 读书 | 手册 | 精华 | 下载 | 沙龙 | 搜索
Linux首页 | Linux论坛 | 论坛精华 | 开源新闻 | 技术文章 | 专题专栏 | 新手指南 | 迁移方案 | 产品方案 | 开源项目 | 开源图书 | 软件下载 | 人才招聘 | Linux博客
  搜索

  产品与方案
·中科红旗全面打造现代化邮政体系
·红旗助力“网上审批服务” 推动电子政务
·红旗正版化开创呼和浩特网吧建设新起点
·红旗Linux助信息产业部邮件服务器“快跑”
·中标普华Linux 为电子政务信息化保驾护航
·中标普华Linux助力基金产业
·中标普华Office率先支持UOF标准
·中标普华邮件系统助力西藏政府信息化建设
·红旗Linux助力国库集中支付系统改革
·红旗助中信卫星 掀起GIS通信应用风暴
·红旗软件助力烟草总局 全面建设“数字烟草”
·红旗助力“信访阳光工程”打造畅通信访渠道
·红帽联合FIS发布下一代实时核心银行平台
·红旗助力金盾 打造全无忧出入境信息系统
·红旗Linux全力打造中国邮政总局名址信息库
·爱尔兰证交所从Unix迁移到红帽企业Linux
·一流的意大利银行选择使用红帽企业Linux
·PLUS Finanzservice选择使用红帽企业Linux
·红帽助力TransACT Communications 公司
·法国零售业巨头Lapeyre采用Redhat Linux
·旅游预订网站选择使用红帽企业Linux
·马哈拉施特拉邦政府的红帽解决之道
·美国联邦政府案例
·红帽为慕尼黑展览会提供现代化集群系统
·Yuba郡用开源软件和红帽产品提高了效率
·红帽企业Linux助印度理工建立高性能计算中心
·采用红帽Linux 将系统维护时间缩短了65%
·从UNIX迁移到Linux使Peñoles公司获益非浅
·Hikal公司用红帽企业Linux开展任务关键的ERP项目
·KDE3.5.4新版本发布
·芝加哥商业交易所从Unix向Linux迁移
·南方基金管理有限公司成功案例 Red Hat Linux
·广东北电通讯设备有限公司成功案例
·挪威国家石油公司从UNIX迁移到红帽Linux,成本减半
·中央电视台CCTV动画部案例 Red Hat Linux

  图书

鸟哥的Linux私房菜基础学..


Linux程序设计.第3版


Linux设备驱动开发详解


  下载
·Endian Firewall
·linux kernel(Linux 内核)
·CentOS
·Fedora Core 6
·Scientific Linux
·Slackware 11.0
·Gentoo Linux
·ubuntu-6.10-i386服务器版本
·ubuntu-6.10-amd64服务器版
·ubuntu-6.10-i386桌面版
·ubuntu-6.10-amd64桌面版
·Engarde Linux
您的位置: Linux时代 > 技术文档 > 数据库 >

源码安装Postgresql8.1.3+PostGIS1.1.2

日期:2006-08-31 作者:wen 来自:www.osschool.org


新版源码安装配置使用Postgresql8.1.3+PostGIS1.1.2

   原来写的里面小错误太多,这次做了一些订正,但想必仍然留下不少错误。
   希望斑竹把旧版的删除。(20060425)


   我一向使用的Linux发行版是Debian,为的使贪图Debian安装软件的方便,但是为了使用Postgresql+PostGIS,我不得不使用源码来安装,因为在Debian的中:
     Sarge: 只有Postgresql7.4
     Etch: 有Postgresql7.4和8
     Sid: 有Postgresql7.4和8;PostGIS是有for postgresql7.4的,而且我安装也失败,原因可能是apt源本身的问题。
 
   使用源码来安装,不仅可以使用这些软件的最新版本,而且可以帮助自己更好地理解、更好地控制这些软件。

   以下过程可以应用于各种Linux发行版而不只是Debian。

   当然,过程麻烦一点,也不太适合于新手。

 
一 安装Postgresql8.1.3

1 下载源码。

2 解压。

3 配置,进入解压目录后可以用./configure –help来查看可用的参数。我使用的是:

   # ./configure --prefix=/opt/pg --without-readline  --without-zlib

前一个参数是把循照惯例把自己的软件安装到/opt目录下,后面两个参数是因为我的系统里没有安装readline和zlib,其实安装一下就可以了。
 
   在Debian中这样可以去掉后面的两个--without参数:
   # apt-get install libreadline5-dev zlib1g-dev
  解决在Sarge安装postgresql时,configure出现的问题。

4 编译后并安装:

  # make

  # make install

5 增加Postgresql数据库的最高用户postgres并设置密码:

  # adduser postgres
  # mkdir /opt/pg/data
  # chown postgres /opt/pg/data

最好再这样:
  # chown -R postgres /opt/pg  

6 以用户postgres登陆:

  # su – postgres
 
 

7 初始化数据库:
    $ /opt/pg/bin/initdb -D /opt/pg/data

8 运行数据库服务器:

  $ /opt/pg/bin/postmaster -D /opt/pg/data>logfile 2>&1 &

9 创建一个数据库:

  $ /opt/pg/bin/createdb test

10 在本机上运行客户端进行管理:

  $ /opt/pg/bin/psql test

    这就要求你对基础的sql语法要熟悉了。

 

    到这里Postgresql就算安装完成了。但是为了能远程使用该数据库---比如说我要在网络上另外一台Windows电脑上使用pgAdmin来管理使用该Postgresql服务器---则还需要进行一些修改,这些修改主要包括两方面的修改,一是修改Postgresql的两个配置文件,二是修改数据库的一些用户权限:

11 修改Postgresql的配置文件Postgresql.conf,该文件在数据目录/opt/pg/data下,将其中的一句:

listen_address=’localhost’

前面的注释去掉,并把’localhost’该为’*’。

 

12修改Postgresql的配置文件pg_hba.conf,该文件在数据目录/opt/pg/data下,在文件后面加一句:

host   all all  192.168.0.0/24   password

这句的意思是:同网络中192.168.0.*的机器可以以密码的形式使用所有的数据库。更具体的参数意义直接看该配置文件中的注释就可以了。

这里一定要配置正确,否则无法在远程连接postgresql数据库。

 

13 重新启动postgresql服务器:

 $ /opt/pg/bin/pg_ctl stop -D /opt/pg/data

  停止原来的服务器

 $  $ /opt/pg/bin/postmaster –i -D /opt/pg/data >logfile 2>&1 &

  再次启动,加一个-I参数

 

14 一些数据库用户权限的简单配置,以下是在psql中使用

# create userwen1 password ‘123456’;

 创建一个用户并设置密码

# createdatabase data1 owner wen1;

  创建一个数据库

# create tablewen11(name varcha(10))

  创建一个数据表

# alter table  wen11 owner to  wen1;

  修改数据表的属主。

  现在可以在局域网内的其他电脑使用其他postgresql客户端工具,以用户名wen1打开data1数据库了。

 

还需要改进的一些问题:

1 中文支持的问题:使用encoding=’UTF-8’创建数据库好不好?

2 系统启动时自动启动postgresql的问题:完全可以参考Debian的相应启动脚本。

 
二  phppgadmin的安装配置(可选的过程)
 
      为了管理配置我的数据库服务器,对于我这样的postgresql生手,需要一个方便的管理程序。这样的管理工具很多,考虑自己以前使用mysql有一个便利的phpmyadmin,我选择了phppgadmin。   phpPgAdmin是一个充分地功能基于互联网的postgresql管理实用程序。它处理所有基本的功能并且某个先进的功能譬如触发器, 视图等,是一个基于B/S模式的管理软件,必须安装在服务器端。
 
    具体的安装过程为:
    1 下载源码,现在的最新版本为4.0.1
           # cd
           # wget http://......./phpPgAdmin-4.0.1.tar.gz
       2 解压:
      # tar zxvf phpPgAdmin-4.0.1.tar.gz
       3 检查系统是否已经安装好apache+php以及php对postgresql的支持,如果没有,以下为安装:
      # apt-get install apache php4 php4-pgsql
          注意修改apache的配置文件以使apache支持php。
    4 使phpPgAdmin在客户端可用,我一般是在apapche目录下建立符号连接:
      # ln -s /root/phpPgAdmin-4.0.1 /var/www/pgadmin
       5 修改phpPgAdmin的配置文件 config/config.inc.php,其中必须要修改的参数有:
      $conf['servers'][0]['host']='localhost';
           标明数据库服务器在本机
           $conf ['extra_security'] = false;
           允许使用postgres帐号登陆。
    6 在客户端使用浏览器,输入地址:
      http://....../pgadmin
          就可以进行postgresql数据库的管理了。


三 安装postgis

  1 最好先安装proj4和OGR,我偷懒没有安装,应该只是性能上打折扣吧,并不影响安装使用。
   Debian下可以这样:安装postgis的时候,先:
    #apt-get install proj libgeos libgeos-dev

  2 下载源码。

  3 解压进入目录。

  4 配置:

# ./configure --prefix=/opt/postgis --with-pgsql=/opt/pg/bin/pg_config

意思很明显

  5 编译、安装:

# make

# make install

  6 之后的一些工作:

   $ /opt/pg/bin/createdb data1

$ /opt/pg/bin/createlang plpgsql data1

$ /opt/pg/bin/psql-d data1 -f  lwpostgis.sql

$ /opt/pg/bin/psql-d data1 -f spatial_ref_sys.sql

注意找到并进入包含后面那两个sql文件的目录再进去执行。

 
下面可以使用postgis了,先试试Postgis提供那两个转换shape文件和postgis数据的小程序吧。


四 PostGIS的初步使用

    网络上关于PostGIS的使用的文章不多,而且说得不够详细,今天经过一番摸索,得到一些基本应用的经验,希望能减少一些大家入门的周折。

    以下假设我要把一个test.shp文件(实际上完整的应包含三个文件)的数据导入到Postgresql数据库data1中的test数据表,为了安全起见,数据库Data1及相关的数据表的属主都设置为wen1,然后在GIS客户端如QGIS uDig等使用这个PostGIS数据。详细的过程为;

   1 假设PostGreSQL数据库服务器和PostGIS都安装好。(见另文"源码安装Postgresql8.1.3+PostGIS1.1.2")
   2 以数据库的超级用户postgres进入psql:
     # /opt/pg/bin/psql         (注意路径)
     以下的操作都是在psql控制台。
   3 基本设置:
    # create user wen1 password ‘123456’;        创建一个用户并设置密码
    # create database data1 owner wen1;            创建一个数据库
    # alter table spatial_ref_sys owner to  wen1;
    # alter table geometry_columns owner to wen1 ;  这两句修改两个postgis相关的表的属主为wen1,很重要,一般文章中似乎没提到这两点。
   4 数据转换,以下工作退出psql,在shell界面进行。
     先把三个test.shp文件复制到/opt/postgis/bin目录下并转到该目录下,注意路径,注意目录和文件的权限---也许退出postgres用户到root用户简单一些。
     # /opt/postgis/bin/shp2pgsql test test data1 > test.sql
     # /opt/pg/bin/psql -d data1 -f test.sql
     注意参数都要写对,不明白的话一定要用--help参数查看。
   5 在客户机器上打开QGIS,依次选择"图层"-->"添加PostGIS图层"-->"新建",然后设置好正确的服务器IP,数据库名data1,用户wen1及密码,再点击"连接",然后下方会出现test图层的名字,选择就可以了。
    uDig的使用也大同小异。

    一点体会:
    1 要先弄懂PostgreSQL的使用,尤其是各种权限的概念和关系,这是一般从Windows下转移来的人很缺乏的。
    2 最好选择一个好的PostgreSQL客户端工具来帮助调试,推荐使用PgAdmin。

原文链接:http://www.osschool.org/wen/bbs/topic.php?forumid=7&filename=f_36

本文被浏览



 相关新闻

论自由软件在中国中小学教育中的应用2006-08-31 11:01:36
部分开源教育件软件介绍2006-08-29 17:24:45
开源软件在教育行业内拓展2006-08-29 16:26:57
Ubuntu下使用教育网直通车连国外网2006-08-03 13:24:08
新西兰教育部同Novell签订合作协议2006-01-13 11:20:19
3Z组合推进高校Linux教育2006-01-06 11:02:32
Linux: Linux 教育在中国2005-12-21 10:28:24


 相关评论
关于我们 | 联系方式 | 广告合作 | 诚聘英才 | 网站地图 | 免费注册

Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们

京ICP证041476号