PostGIS命令行使用
说是PostGIS的命令行使用,其实就是PostgreSQL的命令行使用,PostGIS只不过是Postgresql的一个插件罢了。
1.设置密码
在linux上刚安装好的postgresql会有一个默认用户postgres,但是没有密码,需要手动给他设置一个密码,才能登录数据库。首先在命令行中切换至postgers用户:sudo su postgres,然后登录默认的数据库:psql postgres ,(以上两步也可以直接写为:sudo -u postgres psql postgres)然后通过:\password postgres,给用户postgres设置密码,需要输入两次密码。
2.创建数据库
首先连接数据库:sudo -u postgres psql
postgres=# create database hdxs; 这里的分号一定要输,否则psql不认为这是一个语句的结束。
4.数据的导入和导出
数据导出使用pg_dump命令,导入使用psql命令
1 | ## 数据导出,导出一张表: -U 用户名 ,-t 数据表 , -f 文件名,test数据库名 |
数据导出
1.导出数据库:
- 方式一:pg_dump -U postgres -f c:\db.sql postgis
- 方式二:pg_dump -U postgres postgis > c:\db.sql
2.导入数据库:方式一:psql -d postgis -f c:\db.sql postgres
3.导出具体表:方式一:pg_dump -Upostgres -t mytable -f dump.sql postgres
4.导入具体表:方式一:psql -d postgis -f c:\ dump.sql postgres
问题:
(1)使用pg_dump时,在linux出现:Peer authentication failed for user “postgres”
这个时候,不需要使用sudo su postgres切换到postgres用户,只需要在pg_dump的命令中添加-h为localhost即可
1 | pg_dump -U postgres -h localhost hdxs > hdxs.sql |
1.pgadmin3 新建服务器出现错误 Peer authentication failed for user “postgres” 的解决办法
2.How can I get pg_dump to authenticate properly
(2)同样在linux 下使用psql导入sql数据库时出现: Ident authentication failed for user “postgres”
这个时候要使用sudo su postgres 切换到postgres用户下,然后使用psql创建数据库,退出psql,然后在执行:
1 | psql -d hdxs -f hdxs.sql postgres |
1.pgadmin3 新建服务器出现错误 Peer authentication failed for user “postgres” 的解决办法
2.Getting error: Peer authentication failed for user “postgres”, when trying to get pgsql working with rails
3.OSGeo4W
5.坐标转换
数据库中的坐标系是4490的坐标系,需要转换成高德地图坐标系。这个只需要把下面的 geoc-pg-coordtransform.sql 文件下载下来,然后通过执行脚本的方式将里面的 sql 脚本执行一遍就可以了,最好不用用复制的方式,这种方式sql语句可能执行不成功。
【1】.pg-coordtransform 这个仓库还是挺有用的
【2】. Java【代码分享 04】坐标系说明+WGS84\GCJ02\BD09坐标系转换工具+Java坐标系转换及验证源代码分享(粘贴可用)