postgresql13+postgis3.2安装教程

news2025/1/11 20:47:07

postgresql13+postgis3.2安装教程

安装postgresql13

安装pg13

pg13安装包

cd /home/soft/pg
tar -zxvf postgresql-13.6.tar.gz 
cd postgresql-13.6

image-20221230095038356

 # yum -y install -y readline-devel
 ./configure --prefix=/usr/local/pgsql

image-20221230095221159

 make -j4
 make install

image-20221230100340573

设置环境变量

vim /etc/profile
export PATH=/usr/local/pgsql/bin:$PATH
export PGHOME=/usr/local/pgsql:$PATH
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
source /etc/profile

初始化数据库

mkdir /home/pgfile
chown -R postgres:postgres /home/pgfile
su - postgres
cd /usr/local/pgsql/bin
./initdb -D /home/pgfile/data/

image-20221230102242325

启动数据库

指定数据库目录启动数据库

su - postgres
mkdir /home/pgfile/log
touch /home/pgfile/log/logfile
./pg_ctl -D /home/pgfile/data -l /home/pgfile/log/logfile start

image-20221230102910872

修改数据库postgres用户密码

su postgres
psql

image-20221230103319217

postgres=# ALTER USER postgres WITH PASSWORD 'postgres';

image-20221230103412369

修改远程配置

配置文件位置和数据位置

/home/pgfile/data

修改pg_hba.conf

vim pg_hba.conf

host    all             all             0.0.0.0/0               trust

image-20221230103737776

修改postgresql.conf

vim postgresql.conf

listen_addresses = '*' 

image-20221230103940193

重启数据库服务

su - postgres
./pg_ctl -D /home/pgfile/data -l /home/pgfile/log/logfile restart

安装postgis3.2

安装proj

# 安装proj
tar -zxvf proj-8.2.1.tar.gz
cd proj-8.2.1
./configure --prefix=/home/postgres/proj
#make -j4 使用多个核心去跑任务
make -j8
make install

image-20230103190020588

yum uninstall sqlite-devel

错误1

image-20230103190721904

SQLite

image-20230103191004530

tar zxvf sqlite-autoconf-3400100.tar.gz
cd sqlite-autoconf-3400100/
./configure 
make -j8 && make install
mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
ln -s /usr/local/sqlite3/bin/sqlite3 /usr/bin/sqlite3
echo "/usr/local/sqlite3/lib" > /etc/ld.so.conf.d/sqlite3.conf
ldconfig

安装完成后

vi ~/.bash_profile

在文件中追加:

export PKG_CONFIG_PATH=/usr/local/sqlite3/lib/pkgconfig
source ~/.bash_profile

最后查看新的版本号

sqlite3 -version

image-20230103191503779

image-20230103223603027

参考

进入目录

cd sqlite-autoconf-3400100

修改源代码添加宏

vim sqlite3.c

在include下面添加宏

#define SQLITE_CORE 1
#define SQLITE_AMALGAMATION 1
#ifndef SQLITE_PRIVATE
# define SQLITE_PRIVATE static
#endif
#define SQLITE_ENABLE_COLUMN_METADATA 1        //注意这行
 
/************** Begin file ctime.c *******************************************/
/*

在重新编译:

./configure --prefix=/usr/local/sqlite3
make
sudo make uninstall
sudo make install

错误2

image-20230103205844234

 yum install curl-devel -y

安装geos

# 安装geos
# yum install -y bzip2
tar -jxvf geos-3.9.4.tar.bz2
cd geos-3.9.4
./configure --prefix=/home/postgres/geos
#make -j4
make -j8
make install

安装gdal

# 安装gdal
tar -zxvf gdal-3.5.3.tar.gz
cd gdal-3.5.3
./configure --prefix=/home/postgres/gdal --with-proj=/home/postgres/proj
#make -j4
make -j4
make install

或者使用低版本的-2.3.2

错误一

如果安装报错,提示SFCGAL缺少

image-20221230112932152

由于SFCGAL需要依赖Boost、CGAL、GMP、MPFR这四个软件,所以具体总共需要先安装 以下四个软件:

boost-devel.x86_64
gmp-devel.x86_64
mpfr-devel.x86_64
CGAL-4.13.1
  • 安装boost-devel
yum -y install boost-devel.x86_64
  • 安装gmp-devel.x86_64
yum -y install gmp-devel
  • 安装mpfr-devel.x86_64
yum -y install mpfr-devel
  • 安装cgal
 tar -zxvf cgal-releases-CGAL-4.14.3.tar.gz
 cd cgal-releases-CGAL-4.14.3
# yum install -y cmake3
# 生成makefile
cmake3 .

# 编译并且安装
make -j4
make install
  • 安装SFCGAL
tar -zxvf SFCGAL-1.3.8.tar.gz
cd SFCGAL-1.3.8
# 生成makefile
cmake3 .

# 编译并且安装
make -j4
make install

安装json-c

 tar -zxvf json-c-json-c-0.16-20220414.tar.gz
 cd json-c-json-c-0.16-20220414
#./configure  --prefix=/home/postgres/json-c-0.16
cmake3 -DCMAKE_INSTALL_PREFIX=/home/postgres/json-c-0.16
make -j4
make install
tar -zxvf json-c-json-c-0.13.1-20180305.tar.gz
 cd json-c-json-c-0.13.1-20180305
./configure  --prefix=/home/postgres/json-c-0.13.1
make -j4
make install

安装Protobuf

#安装相关依赖
sudo yum install autoconf -y
sudo yum install automake -y
sudo yum install libtool -y

tar -zxvf protobuf-3.19.6.tar.gz
cd protobuf-3.19.6

./autogen.sh
#配置安装目录
./configure  --prefix=/usr/local/protobuf-3.19.6
make -j4
make install
#配置环境变量,增加/home/postgres/protobuf-3.19.6安装目录
vim /etc/profile
export CMAKE_HOME=/usr/bin/cmake
export PKG_CONFIG_PATH=/usr/local/protobuf-3.19.6/lib/pkgconfig
export PROTOBUF_HOME=/usr/local/protobuf-3.19.6
export PATH=$CMAKE_HOME/bin:$PROTOBUF_HOME/bin:$PATH
#保存退出
source /etc/profile
#验证protobuf执行程序
protoc --version
#出现libprotoc 3.19.6说明安装成功

安装protobuf-c

tar -zxvf protobuf-c-1.4.1.tar.gz    
cd protobuf-c-1.4.1 
#导入protobuf的pkgconfig,否则"--No package 'protobuf' found"
export PKG_CONFIG_PATH=/usr/local/protobuf-3.19.6/lib/pkgconfig
./configure  --prefix=/usr/local/protobuf-c-1.4.1
make -j4   
make install   
#配置环境变量,增加下protobuf-c-1.4.1/bin
vim /etc/profile
# 在export PATH=$CMAKE_HOME/bin:$PROTOBUF_HOME/bin:$PATH 追加
export PATH=$CMAKE_HOME/bin:$PROTOBUF_HOME/bin:$PATH:/usr/local/protobuf-c-1.4.1/bin
#保存退出
source /etc/profile

安装postgis

安装相关依赖

yum -y install gcc-c++.x86_64
yum install libxml2 libxslt -y
yum -y install libxml2 libxml2-dev libxml libxml2*
#安装postgis(mvt、json)
tar -zxvf postgis-3.2.4.tar.gz
cd postgis-3.2.4
./configure --prefix=/home/postgres/postgis --with-pgsql=/usr/local/pgsql/bin/pg_config --with-pgconfig=/usr/local/pgsql/bin/pg_config --with-geosconfig=/home/postgres/geos/bin/geos-config  --with-projdir=/home/postgres/proj --with-gdalconfig=/home/postgres/gdal-2.3.2/bin/gdal-config --with-jsondir=/home/postgres/json-c-0.13.1  --with-protobufdir=/usr/local/protobuf-c-1.4.1 
#make -j4
make -j16
make install

image-20230103231950925

image-20230104000019170

修改动态库的路径(so库的路径)

vim /etc/ld.so.conf
#编辑内容如下
include ld.so.conf.d/*.conf

/usr/local/protobuf-3.19.6/lib
/usr/local/protobuf-c-1.4.1/lib
/home/postgres/proj/lib
/home/postgres/gdal-2.3.2/lib
/home/postgres/geos/lib
/home/postgres/json-c-0.13.1/lib

#编辑完成后wq!保存退出
#保存配置,重启生效
ldconfig

测试

--测试postgis
EXPLAIN ANALYZE select st_geomfromtext('Point(103.667546 36.534295)');
-- 测试geohash
select st_geohash(st_transform(st_geomfromtext('Point(103.667546 36.534295)', 4326), 4326), 12) as geohash;
-- 测试mvt
WITH mvtgeom AS
         (
             SELECT ST_TileEnvelope(12, 513, 412) AS geom
         )
SELECT ST_AsMVT(mvtgeom.*)
FROM mvtgeom;

安装uuid

yum -y install e2fsprogs-devel uuid-devel libuuid-devel

cd /home/soft/pg/postgresql-13.6
./configure --prefix=/usr/local/pgsql --with-uuid=ossp

cd /home/soft/pg/postgresql-13.6/contrib/uuid-ossp/
make && make install

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/146093.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenGPT的11种高效用法

1. 问答提示 2. 解释复杂的概念 3. 创作 创作需要尽可能的缩小范围,提出具体的要求,AI会给出更好的答案。 4. 准备面试 5. 教师教案 6. 编码和集成 7. 健身 8. 送礼推荐 9. 翻译 这个甚至不用去演示,openAI的翻译能力非常强大&#xff0c…

计算机专业混子应届生,如何3个月逆袭,成功上岸?

在我进入大学之前,我一直对计算机感兴趣。虽然只是考了一个一般大学,但是选专业的时候还是选了计算机专业。 本来以为自己会在大学里学到很多有用的知识,并且能够很快找到一份好工作。但是,事实并不是这样。在大学期间&#xff0c…

竞品分析:叮咚买菜

​生鲜包括了三类未加工的初级产品“果蔬(水果蔬菜)、肉类、水产品”以及两类加工产品“面包和熟食”。熟食又包括“冷藏的冷冻食品、乳制品和非冷藏的散装杂粮”。 生鲜电商就是以电子商务的形式销售以上产品。 生鲜电商有着“悠久”的历史&#xff0…

Vue组件的生命周期

一、生命周期 & 生命周期函数 1. 生命周期(Life Cycle)是指一个组件从创建 -> 运行 -> 销毁的整个阶段,强调的是一个时间段。 2. 生命周期函数:是由 vue 框架提供的内置函数,会伴随着组件的生命周期&#xf…

第四十三讲:神州防火墙混合模式的初始配置

混合模式即相当于防火墙既工作于路由模式,又工作于透明模式。在实际应用环境中,此类防火墙应用一般也比较广泛。混合模式分为两种: 一,ISP分配外网地址,内网为私网地址,服务器区域和内部地址为同一网段。这…

智慧商圈,对接微信、支付宝、云闪付实现自动积分

线下交易 商城下的门店使用本公司内部的pos机以及会员管理系统,通过pos收银时,根据管理系统配置的积分规则,可以自行给会员积分。但是当商城内部的部分门店不是使用内部的pos机进行收银时,则无法给给该批用户进行积分。以前有拍照…

吉他谱软件guitar pro2023吉他和弦、六线谱、BASS四线谱绘制

Guitar Pro由法国Arobas Music出品,主要用于管弦乐器的学习,通过建立不同的音轨,可完成不同乐器乐谱的编排制作。Guitar Pro发布23余年来,其强大的功能被广泛应用于专业乐队的创作和排练,其独创的gtp文档格式在专业领域…

「数据密集型系统搭建」原理篇|夯实基础,灵活设计

正所谓“完事开头难”,在设计技术方案时候,除了前期要做好背景调查、需求调研,开工动手的第一步就是做“数据建模”,也就是存储数据的结构设计,大部分时间是围绕关系型数据库进行的,少部分是在Redis上做K-V…

「技术直播」分布式数据库订阅功能的原理及实现

数据订阅是一种数据查询方式,其特点为:客户端执行一个查询语句后,可以增量形式,不断收到新到达服务端的、符合查询条件的数据。相比普通查询,订阅能够持续地、低延迟地将新写入的数据返回客户端。什么时候需要数据订阅…

40 行 Python 代码,写一个 CPU!

目录 一、引言 二、CPU 的组成 三、工作原理 四、CPU 指令工作详细剖析 五、 Python 实现 CPU 各组成部分 六、集成 CPU 七、为CPU编程,体会上古程序员 工作流程 八、总结 一、引言 CPU 如何工作?是困扰初级用户一个迷雾般的难题。我们可能知道诸…

HTML1

HTML是一门语言,所有的网页都是用HTML这门语言编写出来的 HTML(Hyper Text Markup Language):超文本标记语言 超文本:超越文本的限制,除了文字信息,还可以定义图片、音频、视频等内容 标记语言:由标签构…

联合证券|北京宣布:全域禁放!新能源大爆发,有港股盘中暴涨超40%

周五A股商场和港股商场进一步走强,连续近期连续涨势,其间上证指数盘中再创近期反弹以来新高,新能源赛道股团体大涨,成为商场新的领涨主力。 北向资金也持续大举净买入,继昨天净买入超越百亿元之后,今天上午…

续集来了丨UI自动化测试(二):带视频,实在RPA高效进行web项目UI自动化测试

一、什么是web项目ui自动化测试? 通过测试工具模拟人为操控浏览器,使软件按照测试人员的预定计划自动执行测试的一种方式,可以完成许多手工测试无法完成或者不易实现的繁琐工作。 正确使用自动化测试,可以更全面的对软件进行测试…

让 APISpace 告诉你什么场景使用什么API(3)

Q:跨境电商平台,需要在界面上展示跨境包裹的物流信息,需要使用的是什么API? 需要 跨境国际快递物流查询API~ 跨境国际快递物流查询服务,支持900物流商,提供实时查询和单号订阅API接口。稳定高效&#xff…

160链表-相交链表

题目 链接:160. 相交链表 - 力扣(LeetCode) 思路 是指针相同,先求出两个链表的长度以及差值,让curA移动到和curB末尾对齐的位置,然后就可以遍历比较是否相同 代码: /*** Definition for sing…

【阶段二】Python数据分析数据可视化工具使用04篇:核密度估计图

本篇的思维导图: 核密度估计图 核密度估计图(kernel density plot)用于显示数据在X轴连续数据段内的分布状况。这种图表是直方图的变种,使用平滑曲线来绘制数值水平,从而得出更平滑的分布。核密度估计图比统计直方图优胜的一个地方,在于它们不受所使用分组数量的…

一文学会Linux IPC通信

目录 概览 单工、半双工、双工 各种IPC通信方式优缺点 1. 管道 2. 消息队列 3. 共享内存 4. 信号量 5. 信号 6. Socket套接字 精筛优秀博客 原本想详细写下,后发现有很多人总结过,那我就直接战在巨人的肩膀上不再重复造轮子了。 概览 单工、半…

PowerCLi 创建esxi登陆用户

官网PowerCLI参数配置参考 New-VMHostAccount 创建用户参考New-VIRole 创建权限组参考Get-VIPrivilege 查询所有角色层配置信息

由浅入深读透vue源码:diff算法

导语 | 开发者工作中,研究代码逻辑常需要思考这个问题:数组变更后,具体变更了哪一些元素?变更的位置如何?本文作者陈碧松解析并覆写了针对数组变化的diff算法逻辑。希望本文对你有帮助。diff方法的运行规则和前提方法为…

干货 | 医疗健康类APP违法违规个人信息收集的自动化检测技术研究

以下内容整理自清华大学《数智安全与标准化》课程大作业期末报告同学的汇报内容。第一部分:概述一、研究背景APP兴起在带给人们便利的同时,也在逐渐蚕食着人们的隐私边界。与此同时,“互联网医疗”使得医疗健康类APP兴起。二、研究目的本文旨…