PostgreSQL和PostGis的安装和配置

  • 内容
  • 评论
  • 相关
一、准备需要安装的软件:
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)安装和初始化数据库,执行如下命令:
  4)执行完成之后,将PostgreSQL注册为Windows 服务方式:
  注:-N表示Windows服务名称为PostgreSQLServer
  注册完成之后,如果安装正常,则可以 启动/关闭/卸载 服务:

  启动服务:

  停止服务:

  卸载服务:

  另外,如果不想将PostgreSQL注册为Windows服务(当然我们也并不建议这样做),可以使用如下名称进行服务的开启和关闭:

  直接启动:

  直接关闭:

  好了。到这里就完成了PostgreSQL的安装了。
2、创建用户、数据库,连接数据库:

  1)创建用户:

    创建一个 名为 devUser,密码为123456的用户

  2)创建用户数据库:

  3)将数据库devdb的所有权限都赋予devUser:

  4)配置远程访问:
  找到目录(D:\Develop\PostgreSQL961\data)下pg_hba.conf:
  此配置为允许任意用户从任意机器上以密码方式访问数据库,把下行添加为第一条规则:
  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扩展。执行如下命名就可以搞定了:
上面的就是PostGIS的扩展列表,当然我们也根据自己的需要只加载部分的扩展。
我们现在试着向创建一张内含地理信息几何类型列的表吧:
创建成功。
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;

评论

0条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注