一、准备需要安装的软件:
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中添加如下配置:
listening_address: '*'
此配置为 在所有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;
支持