一、准备需要安装的软件:
PostgreSQL 下载:
http://get.enterprisedb.com/postgresql/postgresql-9.6.1-1-windows-x64-binaries.zip
PostGIS 下载:
http://download.osgeo.org/postgis/windows/pg96/archive/postgis-bundle-pg96-2.3.1x64.zip
如果要下载安装其他的版本,可以从官网的地址中找:
PostgreSQL 官网:
https://www.postgresql.org/download/windows/
PostGIS 官网:
http://download.osgeo.org/postgis/windows/
二、安装
1、安装PostgreSQL:
1)解压下载好的postgresql-9.6.1-1-windows-x64-binaries.zip到安装目录(我这里就将软件安装到D:\Develop\PostgreSQL目录下)
2)在安装目录中创建数据存放目录data(D:\Develop\PostgreSQL\data)
3)安装和初始化数据库,执行如下命令:
D:\Develop\PostgreSQL\bin\initdb.exe -D D:\Develop\PostgreSQL\data -E UTF8 --local=Chinese
4)执行完成之后,将PostgreSQL注册为Windows 服务方式:
D:\Develop\PostgreSQL\bin\pg_ctl.exe register -D D:\Develop\PostgreSQL\data -NPostgreSQLServer
注:-N表示Windows服务名称为PostgreSQLServer
注册完成之后,如果安装正常,则可以 启动/关闭/卸载 服务:
启动服务:
net start PostgreSQLServer
停止服务:
net stop PostgreSQLServer
卸载服务:
D:\Develop\PostgreSQL\bin\pg_ctl.exe unregister -D D:\Develop\PostgreSQL\data –NPostgreSQLServer
另外,如果不想将PostgreSQL注册为Windows服务(当然我们也并不建议这样做),可以使用如下名称进行服务的开启和关闭:
直接启动:
D:\Develop\PostgreSQL\bin\pg_ctl.exe start -w -D D:\Develop\PostgreSQL\data
直接关闭:
D:\Develop\PostgreSQL\bin\pg_ctl.exe stop -W -D D:\Develop\PostgreSQL\data
好了。到这里就完成了PostgreSQL的安装了。
2、创建用户、数据库,连接数据库:
1)创建用户:
CREATE USER devUser WITH PASSWORD '123456'
创建一个 名为 devUser,密码为123456的用户
2)创建用户数据库:
CREATE DATABASE devdb OWNER devUser;
3)将数据库devdb的所有权限都赋予devUser:
GRANT ALL PRIVILEGES ON DATABASE devdb TO devUser;
4)配置远程访问:
找到目录(D:\Develop\PostgreSQL961\data)下pg_hba.conf:
# IPv4 local connections:
#host all all 127.0.0.1/32 md5
host all all 0.0.0.0/0 md5
# IPv6 local connections:
#host all all ::1/128 md5
host all all ::/0 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#host replication postgres 127.0.0.1/32 md5
#host replication postgres ::1/128 md5
此配置为允许任意用户从任意机器上以密码方式访问数据库,把下行添加为第一条规则:
postgresql.conf中添加如下配置:
此配置为 在所有IP地址上监听,从而允许远程连接到数据库服务器
修改完成如上配置后需要重启PostgreSQLServer服务。
5)利用工具连接数据库:
推荐工具:DBeaver、Navicat for PostgreSQL
DBeaver官网:https://dbeaver.io/(推荐)
Navicat for PostgreSQL官网:http://www.navicat.com.cn/products/navicat-for-postgresql
新增连接:
测试连接接:
连接成功。
3、安装PostGIS:
1)解压postgis-bundle-pg96-2.3.1x64.zip到一个空目录(D:\Develop\postgis-bundle-pg96)
2)修改makepostgisdb_using_extensions.bat配置:
修改完成后执行脚本文件,开始安装
OK,到这里为止。PostgreSQL数据库和PostGIS扩展就已经安装完成了。然而我们还是发现了一件事,既然我们的插件已经安装成功了,为何数据库还是不支持geometry 这样的类型。不要着急,并不是我们安装失败了,而且我们没有给这个数据库开启PostGIS扩展。执行如下命名就可以搞定了:
-- Enable PostGIS (includes raster)
CREATE EXTENSION postgis;
-- Enable Topology
CREATE EXTENSION postgis_topology;
-- Enable PostGIS Advanced 3D
-- and other geoprocessing algorithms
-- sfcgal not available with all distributions
CREATE EXTENSION postgis_sfcgal;
-- fuzzy matching needed for Tiger
CREATE EXTENSION fuzzystrmatch;
-- rule based standardizer
CREATE EXTENSION address_standardizer;
-- example rule data set
CREATE EXTENSION address_standardizer_data_us;
-- Enable US Tiger Geocoder
CREATE EXTENSION postgis_tiger_geocoder;
上面的就是PostGIS的扩展列表,当然我们也根据自己的需要只加载部分的扩展。
我们现在试着向创建一张内含地理信息几何类型列的表吧:
create table t_demo_info (
id int4 not null,
name int2 not null default 0,
type int2 not null default 0,
begin_time timestamp without time zone null,
end_time timestamp without time zone null,
lng numeric null,
lat numeric null,
lnglat geometry null,
constraint pk_t_demo_info primary key (id)
);
创建成功。
4、查看版本
查询PostGIS版本:select postgis_full_version();
查询PostgreSQL版本:select version();
查看PostgreSQL客户端版本:psql --version
查看PostgreSQL版本信息:show server_version;
查看PostgreSQL版本信息(包括小版本号):show server_version_num;
查看PostgreSQL版本信息(包括小版本号):select current_setting('server_version_num');
在这里需要注意的是,select current_setting('server_version_num');返回的是text,如果需要将它转换为Integer,则需要这样写:SELECT current_setting('server_version_num')::integer;
支持