2020-01-14

PostgreSQL(12) + PostGIS(3.0)

安装及部署

  1. 查看服务器操作系统类型和版本
uname -a                    #查看操作系统
cat /etc/redhat-release     #查看版本
  1. 根据所使用的平台系统类型和版本选择正确的YUM安装源
  • 安装rpm
yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm -y
  1. 安装postgreSQL12
  • 部署postgreSQL客户端
yum install postgresql12-contrib postgresql12-server -y
  • 初始化数据库
/usr/pgsql-12/bin/postgresql-12-setup initdb
  • 启动数据库服务
systemctl start postgresql-12
开机自启:systemctl enable postgresql-12.service
  • 数据库配置远程连接
1. 信任远程连接
由于默认配置不支持密码认证,同时仅可供本地服务器访问,需要进行相关配置。
编辑pg_hba.conf文件,设置数据库的远程可访问性:
vi /var/lib/pgsql/12/data/pg_hba.conf
增加以下信任远程连接:
host all all 0.0.0.0/0 md5
2. 开启远程访问
vi /var/lib/pgsql/12/data/postgresql.conf
listen_addresses = '*'
3. 重启数据库服务
systemctl restart postgresql-12
4. 设置防火墙及访问端口
firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload
5. 修改默认数据库和用户postgres的密码
sudo -u postgres psql   #登录客户端
ALTER USER postgres WITH PASSWORD 'postgres';   #修改密码
\q  #退出客户端
  1. 安装postgis
安装依赖包:
rpm -ivh http://www.rpmfind.net/linux/centos/7.7.1908/extras/x86_64/Packages/epel-release-7-11.noarch.rpm
安装postgis:
yum install postgis30_12 postgis30_12-client -y
  1. TSV数据导入空间数据库
  • 创建数据库并配置postgis扩展
路径:/usr/pgsql-12/bin/
su postgres #切换到postgres用户
createdb osm
psql -d osm -c 'CREATE EXTENSION postgis; CREATE EXTENSION hstore';
  • 导入osm数据
psql -h localhost -U postgres -d osm    //登录osm数据库
CREATE TABLE parks_new (way_id int4, shape geometry, tags text );
COPY parks_new(way_id,shape,tags) FROM '/home/parks' WITH NULL '' DELIMITER E'\t'; //导入tsv文件
  • 查询数据
SELECT * FROM parks_new WHERE st_intersects(shape,st_makeenvelope(91.0546875,23.3349609375,124.8046875,40.2099609375));
  • 清除缓存
systemctl stop postgresql-12
sync 
echo 3 > /proc/sys/vm/drop_caches 
systemctl start postgresql-12

你可能感兴趣的:(2020-01-14)