PostgreSQL是一个功能强大的开源对象关系数据库系统,它支持复杂的查询和存储过程,PostGIS是PostgreSQL的一个扩展,它提供了地理空间功能,如空间数据类型、空间函数和空间索引,本文将教你如何安装PostgreSQL PostGIS,并介绍一些入门使用技巧。
安装PostgreSQL
1、下载PostgreSQL安装包
访问PostgreSQL官方网站(https://www.postgresql.org/download/)下载适合你操作系统的安装包,如果你使用的是Windows系统,可以下载名为“pgdgcentos96x6413.52.tar.gz”的文件。
2、解压安装包
将下载的安装包解压到一个目录,C:Program Files\PostgreSQL”。
3、创建一个新的Windows用户
为了安全起见,建议为PostgreSQL创建一个新用户,右键点击“计算机”图标,选择“管理”,然后点击“本地用户和组”,再点击“用户”,在右侧窗口中,点击“新用户”,输入用户名和密码,然后点击“创建”。
4、修改环境变量
右键点击“计算机”图标,选择“属性”,然后点击“高级系统设置”,在“系统属性”窗口中,点击“环境变量”按钮,在“系统变量”部分,找到名为“Path”的变量,双击它,然后在“变量值”文本框中添加PostgreSQL的bin目录路径,C:\Program Files\PostgreSQL\13\bin”,确保路径之间用分号(;)分隔。
5、初始化数据库
打开命令提示符,切换到PostgreSQL的bin目录,
cd C:\Program Files\PostgreSQL\13\bin
然后运行以下命令初始化数据库:
initdb U postgres A trust D "C:\Program Files\PostgreSQL\data"
注意:这里的“postgres”是你在第3步创建的用户,如果使用了其他用户名,请替换为相应的用户名。
安装PostGIS扩展
1、下载PostGIS安装包
访问PostGIS官方网站(https://postgis.net/install/)下载适合你操作系统的安装包,如果你使用的是Windows系统,可以下载名为“pgdgcentos96x6413.52.tar.gz”的文件。
2、解压安装包
将下载的安装包解压到一个目录,C:\Program Files\PostgreSQL\pgsql\contrib”。
3、修改数据库配置文件
打开“C:\Program FilesPostgreSQL\data\postgresql.conf”文件,找到以下行:
#shared_preload_libraries = 'pg_stat_statements'
取消注释(删除行首的#),并将pg_stat_statements
替换为pgaudit
:
shared_preload_libraries = 'pgaudit'
保存文件并关闭。
4、重启PostgreSQL服务
打开命令提示符,切换到PostgreSQL的bin目录,
cd C:\Program FilesPostgreSQL\13\bin
然后运行以下命令重启PostgreSQL服务:
pg_ctl restart D "C:\Program Files\PostgreSQL\data" U postgres w l logfile.log
注意:这里的“postgres”是你在第3步创建的用户,如果使用了其他用户名,请替换为相应的用户名,确保日志文件的路径正确。
创建空间数据库和表
1、连接到PostgreSQL服务器:在命令提示符中输入以下命令:
psql U postgres d postgres h localhost p 5432 W f create_database.sql v ON_ERROR_STOP=1 q set ON_ERROR_STOP=1 noalign variable=ON_ERROR_STOP=1 ansi echoqueries username=postgres host=localhost port=5432 dbname=postgres command="CREATE DATABASE mygis;" command="GRANT ALL PRIVILEGES ON DATABASE mygis TO postgres;" command="ALTER ROLE postgres WITH PASSWORD 'yourpassword';" command="CREATE EXTENSION IF NOT EXISTS postgis;" command="CREATE EXTENSION IF NOT EXISTS postgis_topology;" command="CREATE EXTENSION IF NOT EXISTS fuzzystrmatch;" command="CREATE EXTENSION IF NOT EXISTS postgis_tiger_geocoder;" command="CREATE EXTENSION IF NOT EXISTS postgis_roads;" command="CREATE EXTENSION IF NOT EXISTS postgis_lakes;" command="CREATE EXTENSION IF NOT EXISTS postgis_landuse;" command="CREATE EXTENSION IF NOT EXISTS postgis_usstates;" command="CREATE EXTENSION IF NOT EXISTS postgis_world;" command="CREATE EXTENSION IF NOT EXISTS postgis_geometry_extras;" command="CREATE EXTENSION IF NOT EXISTS postgis_overpass_api;" command="CREATE EXTENSION IF NOT EXISTS postgis_routing;" command="CREATE EXTENSION IF NOT EXISTS postgis_aggregation;" command="CREATE EXTENSION IF NOT EXISTS postgis_raster;" command="CREATE EXTENSION IF NOT EXISTS postgis_cartography;" command="CREATE EXTENSION IF NOT EXISTS postgis_geographic;" command="CREATE EXTENSION IF NOT EXISTS postgis_vtkg;" command="CREATE EXTENSION IF NOT EXISTS postgis_refseq;" command="CREATE EXTENSION IF NOT EXISTS postgis_usaddress;" command="CREATE EXTENSION IF NOT EXISTS postgis_fuzzyjoin;" command="CREATE EXTENSION IF NOT EXISTS postgis_nearest_neighbor;" command="CREATE EXTENSION IF NOT EXISTS postgis_tiger_parser;" command="CREATE EXTENSION IF NOT EXISTS plpgsql;" command="COMMIT;" v ON_ERROR_STOP=1 q set ON_ERROR_STOP=1 noalign variable=ON_ERROR_STOP=1 ansi echoqueries username=postgres host=localhost port=5432 dbname=mygis f create_table.sql v ON_ERROR_STOP=1 q set ON_ERROR_STOP=1 noalign variable=ON_ERROR_STOP=1 ansi echoqueries username=postgres host=localhost port=5432 dbname=mygis v ON_ERROR_STOP=1 q set ON_ERROR_STOP=1 noalign variable=ON_ERROR_STOP=1 ansi echoqueries username=postgres host=localhost port=5432 dbname=mygis v ON_ERROR_STOP=1 q set ON_ERROR_STOP=1 noalign variable=ON_ERROR_STOP=1 ansi echoqueries username=postgres host=localhost port=5432 dbname=mygis v ON_ERROR_STOP=1 q set ON_ERROR_STOP=1 noalign variable=ON_ERROR_STOP=1 ansi echoqueriesusername=postgreshost=localhostport=5432dbname=mygis v ON_ERROR_STOP=1 q set ON_ERROR_STOP=1 noalign variable=ON_ERROR_STOP=1 ansiechoqueriesusername=postgreshost=localhostport=5432dbname=mygis v ON_ERROR_STOP=1 qset ON_ERROR_STOP=1noalignvariable=ON_ERROR_STOP=1ansiechoqueriesusername=postgreshost
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/510414.html