下载PostgreSQL二进制压缩包,根据需要选择Win x86-32(32位)或Win x86-64(64位)
https://www.enterprisedb.com/download-postgresql-binaries
下载PostGIS二进制压缩包,注意与必须PostgreSQL的版本匹配
http://postgis.net/windows_downloads/
1.先解压postgresql-xxx.zip
解压后将解压目录postgresql-xxx中的pgsql目录复制到c:\pgsql
2.解压postgis-xxx.zip
将postgis-xxx.zip解压目录中的以下5个目录到复制到 c:\pgsql.
提示是否覆盖选择是
复制上图的5个目录到c:\pgsql,如果提示是否覆盖选择是
3.初始化数据库
注意以下命令都是在cmd里执行的
假设数据目录在D:\pgdata(注意初始化时D:\pgdata目录必须清空)
win10以下版本
c:\pgsql\bin\initdb.exe -D D:\pgdata -E UTF-8 --locale=chinese-simplified_china.936 -A md5 -W -U postgres
win10或更高版本
c:\pgsql\bin\initdb.exe -D D:\pgdata -E UTF-8 --locale=Chinese_China.936 -A md5 -W -U postgres
注意它们之间的区别,仅仅是文件编码不一样,
win10或更高版本必须用 Chinese_China.936
win10以下版本 chinese-simplified_china.936
4.启动或停止数据库
C:\pgsql\bin\pg_ctl.exe -D D:/pgdata start
C:\pgsql\bin\pg_ctl.exe -m fast -D D:/pgdata stop
现在启动数据库
5.创建用户(test)
注意以下命令都是在c:\pgsql\bin\psql -h localhost -U postgres里执行的
为保证安全性,不要直接使用postgres用户,每个库都创建一个用户
create user test with password '密码' nocreatedb;
6.创建表空间
表空间位置可以在任意位置,一般和数据目录分开比较好,也可以在一起,这里选择分开
create tablespace test owner test location 'E:\pgtest';
7.创建数据库
create database test /*数据库名称为test*/
with OWNER = test /*所有者test,5.创建用户(test)*/
TEMPLATE template0 /*使用的模板*/
ENCODING 'UTF8 /*数据库中的文字采用UTF-8编码*/
LC_COLLATE = 'Chinese_China.936' /*Win10采用Chinese_China.936,Win7采用chinese-simplified_china.936 */
LC_CTYPE = 'Chinese_China.936'
TABLESPACE = test /*使用的表空间,6.创建表空间*/
CONNECTION LIMIT = -1; /*连接数限制,-1表示不限制*/
8.创建PostGis扩展
官网上的示例,实际在中国我们不需要创建那么多扩展,只需要postgis、postgis_topology、postgis_sfcgal、fuzzystrmatch足够了.
下面三个组件是地址编码,国内一般不使用
address_standardizer
address_standardizer_data_us
postgis_tiger_geocoder
-- 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;
在test库中创建postgis扩展,以posgres用户连接接到PostgreSQL
c:\pgsql\bin\psql -h localhost -U postgres -d test
create extension postgis;
create extension postgis_topology;
create extension postgis_sfcgal;
create extension fuzzystrmatch;
检查PostGIS是否安装成功
select PostGIS_Full_Version()
8.现在可以心情的玩耍了
9.注册为Winodws服务(根据自己的需要决定)
注册为Windows服务后就不用手动启动数据库了
c:\pgsql\bin\pg_ctl.exe register -N PostgreSQL -D D:\pgdata
卸载Windows服务
c:\pgsql\bin\pg_ctl.exe unregister -N PostgreSQL -D D:\pgdata