PostgreSql 安装配置 PostGIS

1.安装PostGIS插件

sudo apt-get install PostGIS
sudo apt-get install postgresql-9.3-postgis

2.开启PostgreSql对于PostGIS 的支持,在psql 或者 PgAdmin 中执行命令

-- Enable PostGIS (includes raster)
CREATE EXTENSION postgis;
-- Enable Topology
CREATE EXTENSION postgis_topology;
-- fuzzy matching needed for Tiger
CREATE EXTENSION fuzzystrmatch;
-- Enable US Tiger Geocoder
CREATE EXTENSION postgis_tiger_geocoder;

3.测试例子

-- Create table with spatial column
CREATE TABLE mytable ( 
  id SERIAL PRIMARY KEY,
  geom GEOMETRY(Point, 26910),
  name VARCHAR(128)
); 

-- Add a spatial index
CREATE INDEX mytable_gix
  ON mytable 
  USING GIST (geom); 

-- Add a point
INSERT INTO mytable (geom) VALUES (
  ST_GeomFromText('POINT(0 0)', 26910)
);

-- Query for nearby points
SELECT id, name
FROM mytable
WHERE ST_DWithin(
  geom, 
  ST_GeomFromText('POINT(0 0)', 26910),
  1000
);

Ubuntu 13.10 PostgreSQL 9.3 快速入门

  • 启动
sudo /etc/init.d/postgresql start
  • 停止
sudo /etc/init.d/postgresql stop
  • 设置密码

安装完毕,我们需要更改postgres用户的密码,否则我们就没法使用这个数据库服务器。以postgres这个系统用户的身份运行psql命令,在终端中输入如下:

sudo su postgres -c psql template1

这时候会出现新的提示符,输入下面两个命令,用新密码替换 <***password***>:

ALTER USER postgres WITH PASSWORD ' <***password***> ';
  • 设置 postgres 用户的密码
sudo passwd postgres

而后输入自己的密码

  • 创建数据库

创建第一个数据库,我们把它命名为"mydb",先输入:

su postgres

转为 postgres 用户登陆后,执行

createdb mydb
  • 使用pgAdmin III图形界面客户端

要了解PostgreSQL能干些什么,你首先要学会使用一个图形界面的客户端,在终端中输入:

pgadmin3

你现在停留在pgAdmin III的主界面,点击 "添加数据库连接" 按钮(在左上方)。弹出一个新的对话框,输入地址127.0.0.1,服务器描述,默认数据库"mydb" 和你的密码。

注意,如果pgadmin3报告

“发生了一个错误:
Error connecting to the server: 无法联接到服务器: 连接被拒绝
服务器是否在主机 "127.0.0.1" 上运行并且准备接受在端口
5432 上的 TCP/IP 联接?”

则原因为

原来postgres8.4.4之后的版本的监听端口竟然改为5433了,而pgadmin中默认端口还是5432

通过这个图形界面,你可以新建数据库,表和其他对象;查询数据库,添加数据,执行SQL语句等。 用pgAdmin 3连接

500px-Pgadminpostgresql

  • 管理用户和权限

PostgreSQL没有一个简单的管理用户的方法 ,首先你必需编辑/etc/postgres/pg_hba.conf 并修改它的默认配置(默认配置的安全性非常高),你希望 postgres 来管理它的用户(和系统用户无关),你需要添加如下几行:

<-------------------------------------------
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
# rezo local
host all all 10.0.0.0 255.255.255.0 password
<-------------------------------------------

它的意思是通过你的本地网络(10.0.0.0/24要替换为你的本地网络 !), postgres用户可以以传统的”用户名+密码“的方式连接到数据库。

创建一个数据库,并创建一个对该数据库拥有所有权限的用户,可以使用如下命令:

sudo su postgres -c createuser -D -A -P myuser
sudo su postgres -c createdb -O myuser mydb

第一个命令是创建一个新用户,这个用户没有创建数据库的权限(-D),没有新建用户的权限(-A)。创建用户时会提示你输入密码。第二个命令是创建一个数据库'mydb ,以 'myuser' 作为它的所有者。

Ubuntu 13.10 安装 PostgreSql 9.3

PostgreSql 9.3 增加了物化视图功能,但是Ubuntu自带的更新源只提供了 9.1 版本,去PostgreSql 官网看了一下,发现他们对于Ubuntu 只支持LTS版本,对于PPA软件源是不能自动安装的。

但是在http://wiki.postgresql.org/wiki/Apt 中提供了对于其他版本的手动配置功能

1.创建PPA文件

sudo vim /etc/apt/sources.list.d/pitti-postgresql-saucy.list

在vim 窗口中输入

deb http://apt.postgresql.org/pub/repos/apt/ squeeze-pgdg main

2.手动装证书,如果不安装,会提示 “由于没有公钥,无法验证下列签名:NO_PUBKEY  ...”

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

3.命令行安装

sudo apt-get update
sudo apt-get install postgresql-9.3 pgadmin3

4.安装插件支持,否则创建插件支持时候会报告

ERROR:  could not open extension control file "/usr/share/postgresql/9.3/extension/tablefunc.control": No such file or directory

安装命令

sudo apt-get install postgresql-contrib

5.安装 PostGIS

sudo apt-get install PostGIS