Linux中PostgreSQL和PostGIS的安装和使用方法


当前第2页 返回上一页

在 psql 中设置一下密码――需要注意的是,这里设置的密码并不是 postgres 系统帐户的密码,而是在数据库中的用户密码:


1

postgres=# \password postgres

然后按照提示输入密码就好。

从源码安装 PostGIS

如果选择了从源码安装 PostgreSQL 的话,那么首先需要判断你安装的 PostgreSQL 是什么版本

然后,再到 PostGIS 的网页上去查其对应的是 PostGIS 的哪个版本。

最后,按照 PostGIS 的版本去下载对应的 source

最后的导入很麻烦,笔者就是卡在这一步,所以才最终放弃从源码安装的……

导入 PostGIS 扩展

根据 postgresql 和 postgis 的版本不同,路径会有些差异,主要是路径中包含版本信息:


1

2

3

4

5

$ sudo su postgres

$ createdb template_postgis

$ createlang plpgsql template_postgis

$ psql -d template_postgis -f /usr/share/postgresql/9.5/contrib/postgis-2.2/postgis.sql

$ psql -d template_postgis -f /usr/share/postgresql/9.5/contrib/postgis-2.2/spatial_ref_sys.sql

上面的操作中,创建了一个叫做 “template_postgis” 的空数据库。这个数据库是空的,并且属于 postgres 用户。注意,不要往这个数据库中添加数据,这个数据库之所以称为 “模板”(template),就说明它是用来派生用的。

相应的 PostGIS 路径可能不同,如果失败,就在上面的路径附近多尝试一下,找几个 .sql 文件试试看。

转换 .shp 文件到 PostGIS 数据库中

转换 .shp 到 .sql 文件

首先找到需要转换的文件,假设需要转换的 .shp 文件是:/tmp/demo.shp,那么就做以下操作:


1

2

3

$ sudo su postgres

$ cd /tmp

$ shp2pgsql -W GBK -s 3857 ./demo.shp entry > demo.sql

这里需要说明一下最后一句各部分所代表的含义:

  • -W GBK:如果你的 .shp 文件包含中文字符,那么请加上这个选项

  • -s 3857:指明文件的参考坐标系统。我的 .shp 文件使用的是 EPSG:3857

  • ./demo.shp:.shp 文件的路径

  • entry:表示要导入的数据库表名――假设这个 .shp 文件表示的是各个入口,所以我命名为 “entry”

  • demo.sql

得到了 .sql 文件后,就可以直接导入到 PostgreSQL 数据库了。

创建一个 PostGIS 数据库

这里就需要用到前面的 template 了。


1

2

3

sudo su postgres

psql

CREATE DATABASE newdb WITH TEMPLATE originaldb OWNER dbuser;

  • newdb: 新的数据库名

  • originaldb:也就是前面的 template_postgis

  • dbuser:你的账户名,我一般使用 postgres

导入 .sql 文件


1

2

3

4

5

sudo su postgres

psql

\c newdb

\i demo.sql

\d

可以看到,.sql 文件已经被导入了。

设置数据库权限

OK,现在我们在本机(服务器 IP 假设是 192.168.1.111)用以下命令登录 psql,会发现一段输出:


1

2

3

4

$ psql -h 192.168.1.111 -p 5432

psql: could not connect to server: Connection refused

    Is the server running on host "100.94.110.105" and accepting

    TCP/IP connections on port 5432?

这是因为 PostgreSQL 默认不对外开放权限,只对监听环回地址。要修改的话,需要找到 postgresql.conf 文件,修改值 listen_addresses:


1

listen_addresses = '*'

相关推荐:

Python连接PostgreSQL数据库的方法

PHP连接不上PostgreSQL的问题

PHP 读取Postgresql中的数组_PHP教程

以上就是Linux中PostgreSQL和PostGIS的安装和使用方法的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

linux下tomcat无法访问

在ecs管理控制台上怎么创建或修改自动快照策略

linux主要拿来干什么的

linux如何查看系统是否重启了

linux环境下oracle乱码问题

linux怎么安装redis扩展

linux如何配置ip

linux如何查看文件大小

linux进入目录的命令是什么

linux下telnet不能使用

更多相关阅读请进入《PostgreSQL》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...