在linux系统中离线安装postgresql和postgis亲测可用

2023-11-11

离线用到的包,百度链接:
https://pan.baidu.com/s/14baq72bveIWMbN89tvEgXQ
提取码:573f

我是把防火墙关了的,方便连接数据库

关闭防火墙:systemctk stop firewalld

一、离线安装postgresql使用gz包

  1. postgresql文件夹里面的上传到/usr/local下面,root用户
    进入/usr/local文件夹里面:cd /usr/local
    先安装gcc,g++编译工具,不然安装报以下错误
    【configure: error: no acceptable C compiler found in $PATH】
    解压gccpackages.tar.gz到opt文件夹:tar -zxvf gccpackages.tar.gz -C /opt/
    进入opt文件夹:cd /opt/gccpackages
    执行安装命令:rpm -Uvh *.rpm --nodeps --force
    进入/usr/local文件夹里面:cd /usr/local
    先把rpm文件安装(如果不安装会报下图错误):
    在这里插入图片描述

执行命令:rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm
执行命令:rpm -ivh readline-6.2-11.el7.x86_64.rpm
执行命令:rpm -ivh readline-devel-6.2-11.el7.x86_64.rpm --force --nodeps
执行命令:rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm
执行命令:rpm -ivh xz-devel-5.2.2-1.el7.x86_64.rpm
执行命令:rpm -ivh libxml2-2.9.1-6.el7.5.x86_64.rpm
执行命令:rpm -ivh libxml2-devel-2.9.1-6.el7.5.x86_64.rpm --nodeps
解压数据库:tar -zxvf postgresql-9.5.7.tar.gz
到解压后文件夹:cd postgresql-9.5.7
执行命令:./configure --prefix=/usr/local/postgresql --with-libxml
编译:gmake
在这里插入图片描述
安装:gmake install
在这里插入图片描述
创建用户:useradd postgres
进入到postgres目录:cd /usr/local/postgresql
创建data文件夹:mkdir data
赋予权限:chown -R postgres:postgres data
2. 设置环境变量
执行命令:vi /etc/profile
在末尾添加:

export PGDATA=/usr/local/postgresql/data 
export PGHOME=/usr/local/postgresql 
export PATH=$PGHOME/bin:$PATH 

刷新配置:source /etc/profile
3. 初始化数据库
切换用户:su postgres
数据库初始化操作:initdb
在这里插入图片描述
返回到根目录:cd
启动数据库:pg_ctl -D /usr/local/postgresql/data -l logfile start
执行命令:psql
修改密码:alter user postgres with password '密码';
执行命令:\q
4. 数据库配置,如果postgres用户修改不了就切换到root用户
进入到data文件夹:cd /usr/local/postgresql/data/
执行命令:vi postgresql.conf

修改listen_addresses="*"

执行命令:vi pg_hba.conf

# IPv4 local connections:
每个机器都能远程连接
host    all             all             0.0.0.0/0            md5

重启数据库:pg_ctl -D /usr/local/postgresql/data -l logfile restart
测试连接:
在这里插入图片描述
测试:

CREATE TABLE xmltab01(books xml);
INSERT INTO xmltab01(books) VALUES ('<title>Book0001</title>');

二、离线安装postgis

参考链接
我是参考上面的链接安装,并自己做了调整
5. 进入到gisfile文件夹:cd /var/gisfile
里面是安装postgresl时候上传进来的文件
在这里插入图片描述
2. 先安装bzip,不然会报以下错误
在这里插入图片描述
进入/var/gisfile文件夹:cd /var/gisfile
安装命令:rpm -ivh bzip2-1.0.6-13.el7.x86_64.rpm

3.(上面已经装过可以省略)安装gcc,g++编译工具,不然安装报以下错误
configure: error: no acceptable C compiler found in $PATH
进入/var/gisfile文件夹:cd /var/gisfile
解压gccpackages.tar.gz到opt文件夹:tar -zxvf gccpackages.tar.gz -C /opt/
进入opt文件夹:cd /opt/gccpackages
执行安装命令:rpm -Uvh *.rpm --nodeps --force
4. 安装gdal拓展
进入/var/gisfile文件夹:cd /var/gisfile
解压文件:tar -zxvf gdal-2.0.0.tar.gz -C /opt
进入到解压后目录:cd /opt/gdal-2.0.0
将gdal安装到/usr/local/gdal-2.0.0目录下
注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/gdal-2.0.0
编译:make
安装:make install
5. 安装geos扩展
进入/var/gisfile文件夹:cd /var/gisfile
解压文件:tar -jxf geos-3.6.3.tar.bz2 -C /opt
进入到解压后目录:cd /opt/geos-3.6.3/
将geos安装到/usr/local/geos-3.6.3目录下
注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/geos-3.6.3
编译:make
安装:make install
6. 安装libxml2扩展
进入/var/gisfile文件夹:cd /var/gisfile
解压文件:tar -zxvf libxml2-2.9.1.tar.gz -C /opt 进入到解压后目录:cd /opt/libxml2-2.9.1/
将libxml2安装到/usr/local/libxml2-2.7.2目录下
注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/libxml2-2.9.1 --with-python=no
编译:make
安装:make install
7. 安装proj拓展
进入/var/gisfile文件夹:cd /var/gisfile
解压文件:tar -zxvf proj-5.2.0.tar.gz -C /opt
进入到解压后目录:cd /opt/proj-5.2.0
将proj安装到/usr/local/proj-5.2.0目录下
注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/proj-5.2.0
编译:make
安装:make install
8. 安装json-c拓展
进入/var/gisfile文件夹:cd /var/gisfile
解压文件:tar xzf json-c-json-c-0.13.1-20180305.tar.gz -C /opt
进入到解压后目录:cd /opt/json-c-json-c-0.13.1-20180305
将json-0.12安装到/usr/local/json-0.12目录下
注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/json-0.12
编译:make
安装:make install
9. 安装json-c拓展
需要安装perl依赖
进入/var/gisfile文件夹:cd /var/gisfile
解文件perl-5.32.1.tar.gz:tar xzf perl-5.32.1.tar.gz
进入到解压后文件夹:cd /var/gisfile/perl-5.32.1
执行命令:./Configure -des -Dprefix=/usr/local/perl
依次执行命令:make make test make install
查看是否安装成功:perl –v
如果该命令不能用就使用:perl –version
在这里插入图片描述
安装postgis
进入/var/gisfile文件夹:cd /var/gisfile
解压文件:tar -zxvf postgis-2.5.1.tar.gz -C /opt
进入到解压后目录:cd /opt/postgis-2.5.1
分行复制,不要复制 \ 不然执行会报错,复制到linux中手动加上\ ,\后面不要有空格
执行命令:
./configure --prefix=/usr/local/postgis \ --with-pgconfig=/usr/local/postgresql/bin/pg_config \ --with-xml2config=/usr/local/libxml2-2.9.1/bin/xml2-config \ --with-geosconfig=/usr/local/geos-3.6.3/bin/geos-config \ --with-gdalconfig=/usr/local/gdal-2.0.0/bin/gdal-config \ --with-projdir=/usr/local/proj-5.2.0
在这里插入图片描述
如果出现:configure: error: could not find GDAL错误
执行命令:vi /etc/ld.so.conf
在里面添加:
/usr/local/lib
/usr/local/postgresql/lib
然后在执行上面的步骤

编译:make
安装:make install
10. 安装postgis拓展
切换到postgres用户:su postgres
执行:psql
创建数据库:create database postgis;
切换到postgis数据库:\c postgis
执行命令:create extension postgis;
如果报错:ERROR: could not load library “/usr/local/postgresql/lib/postgis-2.5.so”: libgeos_c.so.1: 无法打开共享对象文件: 没有那个文件或目录
执行命令(lib后面的文件):ldd /usr/local/postgresql/lib/postgis-2.5.so
在这里插入图片描述
缺少so文件,直接把/usr/local对应的安装文件里面复制到postgresql的lib文件夹下
执行命令:cp /usr/local/geos-3.6.3/lib/libgeos_c.so.1 /usr/local/postgresql/lib/
执行命令:cp /usr/local/proj-5.2.0/lib/libproj.so.13 /usr/local/postgresql/lib/
执行命令:cp /usr/local/libxml2-2.9.1/lib/libxml2.so.2 /usr/local/postgresql/lib/
再次执行:ldd /usr/local/postgresql/lib/postgis-2.5.so
在这里插入图片描述
再切换到postgis数据库执行:create extension postgis;
报错:could not load library “/usr/local/postgresql/lib/rtpostgis-2.5.so”: libgdal.so.20: 无法打开共享对象文件: 没有那个文件或目录
执行命令(lib后面的文件):ldd /usr/local/postgresql/lib/rtpostgis-2.5.so
在这里插入图片描述
执行命令:cp /usr/local/gdal-2.0.0/lib/libgdal.so.20 /usr/local/postgresql/lib/
再次执行:ldd /usr/local/postgresql/lib/rtpostgis-2.5.so
在这里插入图片描述
如果创建拓展报错:ERROR: could not load library “/usr/local/postgresql/lib/rtpostgis-2.0.so”:libpq.so.5: cannot open shared object file: No such file or directory
把postgresql安装包里libpq.so.5的添加到64位系统中:

ln -s /usr/local/postgresql-9.5.7/src/interfaces/libpq/libpq.so.5  /usr/lib64/libpq.so.5

再次切换到postgis数据库执行:create extension postgis;
在这里插入图片描述
为了更好的使用postgis功能,决定把所有的扩展都装了:create extension postgis_topology;
在这里插入图片描述
测试postgis是否成功,打开navicat打开postgis数据库
执行sql:select st_buffer(st_geometryfromtext ('POINT (0 0)',0),100 )
如果有结果说明已完成!
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在linux系统中离线安装postgresql和postgis亲测可用 的相关文章

  • 如何 md5 所有列(无论类型如何)

    我想创建一个 sql 查询 或 plpgsql 它将 md5 所有给定的行 无论类型如何 但是 在下面 如果 1 为空 则哈希为空 UPDATE thetable SET hash md5 accountid accounttype cre
  • 无法“安装”plpython3u - postgresql

    我正在尝试在 postgresql 中使用 python 语言 像这样的事情 create or replace function test a integer returns integer as if a 2 0 return even
  • 使用 psycopg2 在 python 中执行查询时出现“编程错误:语法错误位于或附近”

    我正在运行 Python v 2 7 和 psycopg2 v 2 5 我有一个 postgresql 数据库函数 它将 SQL 查询作为文本字段返回 我使用以下代码来调用该函数并从文本字段中提取查询 cur2 execute SELECT
  • 检查 postgres 复制状态

    有人可以建议检查 postgresql 复制状态的步骤以及如何确定复制是否未正确进行吗 我们在 pgsql9 0 和 pgsql9 4 中使用流复制 我通常使用以下 SQL 查询来检查 Postgres v11 的状态 关于主人 selec
  • 我们真的应该使用 Chef 来管理 sudoers 文件吗?

    这是我的问题 我担心如果 Chef 破坏了 sudoers 文件中的某些内容 可能是 Chef 用户错误地使用了说明书 那么服务器将完全无法访问 我讨厌我们完全失去客户的生产服务器 因为我们弄乱了 sudoers 文件并且无法再通过 ssh
  • 在 postgres 查询中使用列表

    我有一个动态列表 list a b c d 所以长度可能会改变 我想在查询中比较这些列表值 select from student where name in all the list values 我想将列表值传递到此查询中 我怎样才能做
  • 学说 dbal querybuilder 作为准备好的语句

    我正在尝试创建一个 Doctrine DBAL 查询生成器对象并在其中设置一个参数 使用 postgres db dbal 2 3 4 原则 connection this gt em gt getConnection qb connect
  • 如何在linux中以编程方式获取dir的大小?

    我想通过 C 程序获取 linux 中特定目录的确切大小 我尝试使用 statfs path struct statfs 但它没有给出确切的大小 我也尝试过 stat 但它返回任何目录的大小为 4096 请建议我如何获取 dir 的确切大小
  • 从 ttyUSB0 写入和读取,无法得到响应

    我对 Linux tty 不太有经验 我的环境是带有丰富 USB 串行的 Raspbian 什么有效 stty F dev ttyUSB0 38400 cu l dev ttyUSB0 s 38400 cu to dev ttyUSB0作品
  • GMail 421 4.7.0 稍后重试,关闭连接

    我试图找出为什么它无法使用 GMail 从我的服务器发送邮件 为此 我使用 SwiftMailer 但我可以将问题包含在以下独立代码中
  • C 语言的符号表

    我目前正在开发一种执行模式匹配的静态分析工具 我在用Flex https github com westes flex生成词法分析器 我编写了代码来管理符号表 我不太有经验C 所以我决定将符号表实现为线性链表 include
  • CMake 链接 glfw3 lib 错误

    我正在使用 CLion 并且正在使用 glfw3 库编写一个程序 http www glfw org docs latest http www glfw org docs latest 我安装并正确执行了库中的所有操作 我有 a 和 h 文
  • PostgreSQL 中“-”处或附近的语法错误

    我正在尝试运行查询来更新用户密码 alter user dell sys with password Pass 133 但因为 它给了我这样的错误 ERROR syntax error at or near LINE 1 alter use
  • 无法为数据库添加 SSL 支持

    我正在使用 Spring 3 Hibernate 和 postgres 9 2 为了启用 SSL 数据库连接 我按照以下步骤操作 创建自签名证书 参考 http www postgresql org docs 9 2 static ssl
  • 内核的panic()函数是否完全冻结所有其他进程?

    我想确认内核的panic 功能和其他类似kernel halt and machine halt 一旦触发 保证机器完全冻结 那么 所有的内核和用户进程都被冻结了吗 是panic 可以被调度程序中断吗 中断处理程序仍然可以执行吗 用例 如果
  • 与 pthread 的进程间互斥

    我想使用一个互斥体 它将用于同步对两个不同进程共享的内存中驻留的某些变量的访问 我怎样才能做到这一点 执行该操作的代码示例将非常感激 以下示例演示了 Pthread 进程间互斥体的创建 使用和销毁 将示例推广到多个进程作为读者的练习 inc
  • 由于键更改而尝试插入时外键约束失败

    我有一个 Content 对象 它引用多对多关系中的一组 Tag 对象 作为持久化新内容对象的一部分 我在 PostgreSQL 中查看标签是否已存在 如果存在 则将对其的引用添加到内容对象并尝试保存内容对象 我遇到的问题是 当我这样做时
  • Mac OS X 上的 /proc/self/cmdline / GetCommandLine 等效项是什么?

    如何在不使用 argc argv 的情况下访问 Mac OS X 上的命令行 在 Linux 上 我会简单地阅读 proc self cmdline or use GetCommandLine在 Windows 上 但我找不到 Mac OS
  • 如何查找哪个 Yocto 项目配方填充图像根文件系统上的特定文件

    我经常与 Yocto 项目合作 一个常见的挑战是确定文件为何 或来自什么配方 包含在 rootfs 中 这有望从构建系统的环境 日志和元数据中得出 理想情况下 一组命令将允许将文件链接回源 即配方 我通常的策略是对元数据执行搜索 例如gre
  • 绕过 dev/urandom|random 进行测试

    我想编写一个功能测试用例 用已知的随机数值来测试程序 我已经在单元测试期间用模拟对其进行了测试 但我也希望用于功能测试 当然不是全部 最简单的方法是什么 dev urandom仅覆盖一个进程 有没有办法做类似的事情chroot对于单个文件并

随机推荐

  • 在主函数里面调用fun函数,这样可以吗?

    Int fun Int a 5 Int p a Return p 请问 在主函数里面调用fun函数 这样可以吗 如果不可以 请说明为什么 并给出一种解决方案 a是局部变量 a 的作用域在fun内 p指向a的地址 在return的时候 a的生
  • Node.js学习笔记--fs 文件系统 writeFile函数

    前言 本章学习fs模块中的writeFile函数 即简单文件系统 所谓的简单 其实就是一种封装 把 1 打开文件 2 关闭文件 给封装到方法里面了 这样调用者使用的时候就方便了 1 使用例 先来看一段代码 var fs require fs
  • 【图像识别】基于支持向量机svm植物叶子疾病检测和分类

    最近在学习svm算法 借此文章记录自己的学习过程 在学习很多处借鉴了z老师的讲义和李航的统计 若有不足的地方 请海涵 svm算法通俗的理解在二维上 就是找一分割线把两类分开 问题是如下图三条颜色都可以把点和星划开 但哪条线是最优的呢 这就是
  • java jmap用法_java命令--jmap命令使用

    jdk安装后会自带一些小工具 jmap命令 Java Memory Map 是其中之一 主要用于打印指定Java进程 或核心文件 远程调试服务器 的共享对象内存映射或堆内存细节 jmap命令可以获得运行中的jvm的堆的快照 从而可以离线分析
  • 设计模式6-命令模式(Command)解析+案例实践+总结

    本文是对面向对象设计模式 命令模式 Command 的解析 主要分为定义解析 通过餐厅点餐案例 遥控器案例讲解命令模式 多案例练习加深对命令模式的理解 最后总结知识要点 第一篇 定义解析 命令模式是GoF四人帮整理的 设计模式 可复用面向对
  • mysql语句声明外键

    环境 在Navicat 中进行mysql的语句操作 示例 1 创建一张员工表 CREATE TABLE employ id INT PRIMARY KEY ename VARCHAR 20 deptId INT 2 插入员工数据 INSER
  • NodeJs的应用场景及实践

    前几天看到一篇文章 据说是WordPress4 3将用NodeJs重写 着实让人有点惊讶 后来了解到 其实并不是完全摒弃PHP 而是由NodeJs重写部分核心类 具体文章链接来源 附上链接 WordPress 4 3 将用 Node js
  • 驱动怎么学

    1 什么是驱动 1 1理解驱动的概念 1 驱动一词的字面意思 驱动就是让一个东西动起来 给一个东西动力 让它动起来 2 物理上的驱动 比如 一个球放在那儿没动 你踢了一下它 给了它一个力 给了力之后它就能动 就说明你驱动了它 这就是物理学上
  • 召唤神龙无敌版,轻松召唤神龙~

    还在被鲨鱼围着追吗 快来试试无敌版轻松通关 最新召唤神龙无敌版 地址 http minigame suyiboke com zhaohuanshenlongwdb index html 备用地址 推荐 https suyiboke com
  • osg与opengl中向量、矩阵的区别

    osg中的向量是行向量 矩阵相应也是与行向量对应 v M 矩阵最后一行对应的是平移 其它行列对应旋转和缩放 对角线元素值对应缩放值 inline void Matrixd preMultTranslate const Vec3d v for
  • GENERIC NETLINK 介绍及使用

    之前一篇博文讲述了Netlink如何使用 当时我们是自己定义了一种协议NETLINK TEST进行用户进程和内核的通信 这篇文章就讲一下如何使用内核为我们提供的NETLINK GENERIC进行通信 如果把Netlink协议比作IP层 那么
  • 从GitHub火到了博客,共计1658页的《Java岗面试核心MCA版》,拿走不谢

    2019年我凭借一份 Java面试核心知识点 成功拿下了阿里 字节 小米等大厂的offer 两年的时间 为了完成我给自己立的flag 拿下一线互联网企业offer大满贯 即使在职也一直在不断的学习与备战面试中 不得不说程序员除了做项目之外
  • 华为8月8日将推出系统云翻新功能:P40/Mate 30系列首发

    7月28日消息 7月28日消息 华为终端公司近日在微博上发布重要公告 宣布将于8月8日推出全新的系统云翻新功能 据悉 该功能将首次应用于华为 P40 系列手机和 Mate30 系列手机 为用户提供更便捷的手机数据备份和恢复体验 系统云翻新功
  • 在ubuntu上安装Ocaml的RPM包的一点经验

    今天想在ubuntu上安装ocaml 3 10 1 1 fc7 src rpm 遇到了一些问题 其实很简单 但是记录下来防止以后忘了 如果输入 sudo apt get install alien ocaml 3 10 1 1 fc7 sr
  • Linux环境下MySQL的数据目录

    MySQL的数据目录 数据库文件的存放路径 MySQL数据库文件的存放路径 var lib mysql mysql gt show variables like datadir Variable name Value datadir var
  • sqlserver链接服务器实现远程联库查询

    1 新建链接服务器 使用SQL Server Management Studio 右键新建链接服务器 在 常规 页面下输入链接服务器名 选择服务器类型为SQL Server 这里看个人需要 在 安全性 页面下选择 使用此安全上下文进行连接
  • 怎样通过一根网线,一台电脑,做到月入过万。

    赚钱 就是开眼 复制 创新 规模 什么是 开眼 看足够多的案例信息 什么是 复制 将底层逻辑为我所用 什么是 创新 取其精华 去其糟粕 什么是 规模 抓住机会 快马加鞭 今天就把我的人脉圈里 做得比较优秀的朋友介绍给大家 希望能给你们带来一
  • 航天生物计算机作文,我与航天作文

    我与航天作文 一觉醒来 又是美好的一天 按照惯例 起床 穿衣服 咦 我的衣服呢 诶 我怎么不在家里 我拖着沉重的眼皮环视四周 咦 怎么都是陨石呢 我发现我已经置身与太空中 并且可以呼吸 我看到了星河 太阳 地球据说 火星上有生命体 但不能肯
  • 用VB调用Webservice

    关键字 VB WebService C 调试环境 vb6 sp5 Vs net 2005 SOAP Toolkit 3 0 在VB中调用Webservice先要安装Soap Toolkit 可以到微软的网站上下载 下载地址为 http ww
  • 在linux系统中离线安装postgresql和postgis亲测可用

    离线用到的包 百度链接 https pan baidu com s 14baq72bveIWMbN89tvEgXQ 提取码 573f 我是把防火墙关了的 方便连接数据库 关闭防火墙 systemctk stop firewalld 一 离线