使用的Linux发行版是ubuntu server 6.06,ubuntu 自带版本最高只有8.1,为了尝鲜,同时8.2.0已经对基于windows平台的兼容性进行了改进,便于平台的转换。同时源码安装可以自己制定一些参数和设置,ubuntu虽然有很好的易用性和兼容性,并且部分特性也较新,但是同window有些相像,减少也封闭了很多细节问题,让开发人员没有机会也不用尝试去理解一些程序的安装过程和参数,对于程序开发来说,并不一定是件好事。
一 安装Postgresql8.2.0
1. 下载源码。
到postgresq.org下载最新的源码。
2 解压。
tar -vxf postgresql*.tar.gz
3 配置,进入解压目录后可以用./configure –help来查看可用的参数。我使用的是:
# ./configure --prefix=/home/shaken/postgresql --without-readline --without-zlib
前一个参数是把循照惯例把自己的软件安装到/opt目录下,后面两个参数是因为我的系统里没有安装readline和zlib,其实安装一下就可以了。
在ubuntu中这样可以去掉后面的两个--without参数:
# apt-get install libreadline5-dev zlib1g-dev
解决在ubuntu安装postgresql时,configure出现的问题。
4 编译后并安装:
# make
# make install
5 增加Postgresql数据库的最高用户postgres并设置密码:
# adduser postgres
# mkdir /home/shaken/postgresql/data
# chown postgres /home/shaken/postgresql/data
最好再这样:
# chown -R postgres /home/shaken/postgresql
6 以用户postgres登陆:
# su – postgres
7 初始化数据库:
$ /home/shaken/postgresql/bin/initdb -D /home/shaken/postgresql/data
8 运行数据库服务器:
$ /home/shaken/postgresql/bin/postmaster -D /home/shaken/postgresql/data>logfile 2>&1 &
9 创建一个数据库:
$ /home/shaken/postgresql/bin/createdb test
10 在本机上运行客户端进行管理:
$ /home/shaken/postgresql/bin/psql test
这就要求你对基础的sql语法要熟悉了。
到这里Postgresql就算安装完成了。但是为了能远程使用该数据库---比如说我要在网络上另外一台Windows电脑上使用pgAdmin来管理 使用该Postgresql服务器---则还需要进行一些修改,这些修改主要包括两方面的修改,一是修改Postgresql的两个配置文件,二是修改数 据库的一些用户权限:
11 修改Postgresql的配置文件Postgresql.conf,该文件在数据目录/home/shaken/postgresql/data下,将其中的一句:
listen_address=’localhost’
前面的注释去掉,并把’localhost’该为’*’。
12修改Postgresql的配置文件pg_hba.conf,该文件在数据目录/home/shaken/postgresql/data下,在文件后面加一句:
host all all 192.168.0.0/24 password
这句的意思是:同网络中192.168.0.*的机器可以以密码的形式使用所有的数据库。更具体的参数意义直接看该配置文件中的注释就可以了。
这里一定要配置正确,否则无法在远程连接postgresql数据库。
13 重新启动postgresql服务器:
$ /home/shaken/postgresql/bin/pg_ctl stop -D /home/shaken/postgresql/data
停止原来的服务器
$ $ /home/shaken/postgresql/bin/postmaster -i -D /home/shaken/postgresql/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=/home/shaken/postgresql/bin/pg_config 意思很明显 5 编译、安装: # make # make install 6 之后的一些工作: $ /home/shaken/postgresql/bin/createdb data1 $ /home/shaken/postgresql/bin/createlang plpgsql data1 $ /home/shaken/postgresql/bin/psql-d data1 -f lwpostgis.sql $ /home/shaken/postgresql/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: # /home/shaken/postgresql/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 # /home/shaken/postgresql/bin/psql -d data1 -f test.sql 注意参数都要写对,不明白的话一定要用--help参数查看。 5 在客户机器上打开QGIS,依次选择"图层"-->"添加PostGIS图层"-->"新建",然后设置好正确的服务器IP,数据库名data1,用户wen1及密码,再点击"连接",然后下方会出现test图层的名字,选择就可以了。 uDig的使用也大同小异。 一点体会: 1 要先弄懂Postgresql的使用,尤其是各种权限的概念和关系,这是一般从Windows下转移来的人很缺乏的。 2 最好选择一个好的Postgresql客户端工具来帮助调试,推荐使用PgAdmin。 原文链接:https://www.f2er.com/postgresql/197463.html