位置: 编程技术 - 正文

Linux CentOS 7源码编译安装PostgreSQL9.5(centos7源码包安装)

编辑:rootadmin

推荐整理分享Linux CentOS 7源码编译安装PostgreSQL9.5(centos7源码包安装),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux系统源码,centos7内核源码,linux系统源码,linux操作系统源码,centos源码下载,centos源码下载,centos7源码包安装,centos7内核源码,内容如对您有帮助,希望把文章链接给更多的朋友!

之前的博客记录了通过rpm包的形式安装PostgreSQL 9.3(Linux CentOS 7 安装PostgreSQL 9.3(发行版本) ),本篇blog将记录一下通过源码编译的形式安装PostgreSQL 9.5。

下载

在postgresql的官方即可找到源码文件目录,地址如下:

进入子目录后,可以看到文件列表:

如上图,可以看到提供了两种压缩格式,此处我们选择postgresql-9.5.5.tar.gz,下载完成后上传至CentOS服务器的指定目录即可。

配置编译安装

首先进入pg压缩包目录通过tar -zxvf ./postgresql-9.5.5.tar.gz进行解压,然后就可以开始编译安装了,进入解压目录,通过./configure --help可以看到编译相关的帮助信息,如下图:

如上图,--prefix=dir可以指定安装目录,还有比如--with-python则可以使用python语法的PL/Python过程语言自定义函数,根据需求我们暂且用不到,所以编译时仅指定一个安装目录即可:

./configure --prefix=/usr/local/postgresql

运行编译后发现会提示没有c编译器,是因为新系统的原因,所以安装一个gcc编译器即可:

yum install gcc

安装完成后再次编译postgres,发现提示缺少readline库,如下图:

如上图,但是通过rpm -qa | grep readline命令查看可以发现系统默认是自带readline包的,如下图:

那么肯定还是缺少与readline相关的包了,通过yum search readline进行搜索可以发现一个readline-devel包,如下图:

其实我们缺少的正是这个readline开发包(readline-devel),而不是readline包,所以接下来安装一下readline-devel:

yum install readline-devel

安装完成后再次编译postgresql,还是报错,这次提示缺少zlib库:

同理,缺少的依然是zlib开发包(zlib-devel)而并不是zlib包,所以继续安装zlib-devel:

yum install zlib-devel

安装完成后再次编译postgresql,并没有再报error,可以看到提示创建了config.status配置文件:

配置完成了,接下来就可以编译安装了,依次执行:

make

make install

看到如下提示即可说明编译安装成功:

用户权限与环境变量

编译安装成功后,接下来要做的就是创建一个普通用户,因为默认超级用户(root)不能启动postgresql,所以需要创建一个普通用户来启动数据库,执行以下命令创建用户:

useradd postgres

接下来需要设置权限,将postgres的数据目录全部赋权给postgres用户(此处我将postgres的数据目录指定在在/usr/local/postgresql/data目录下):

chown -R postgres:postgres /usr/local/postgresql/

最后为了方便起见设置一下相关的环境变量,此处仅仅设置postgres用户的环境变量,所以首先通过su - postgres切换到postgres用户,打开.bash_profile文件并追加以下内容:

Linux CentOS 7源码编译安装PostgreSQL9.5(centos7源码包安装)

修改完成后可以通过source ./.bash_profile使其立即生效,接下来检验一下环境变量是否设置正确,切换任意目录输入which psql以及psql -V即可分别查看psql客户端的路径以及postgresql的数据库版本,如下图:

一切准备就绪之后接下来就可以初始化数据库了。

初始化数据库

由于配置了环境变量,所以此处我们直接执行initdb即可完成db初始化,但在这之前我们可以通过initdb --help看一下初始化相关的帮助信息:

如上图,可以看到在使用initdb进行初始化的同时我们可以指定参数来同时进行一些初始化工作,例如指定pgdata(postgresql数据目录)、指定encoding(编码)、指定数据库超级用户的用户名和密码等等,在最后面我标记出的这段话指出了如果data目录没有指定,则会默认使用环境变量中的PGDATA,由于之前我们刚刚设置了PGDATA环境变量,所以此处我们也就无需再额外指定,最后执行初始化命令即可:

initdb

看到如下信息就说明初始化成功了:

同时在postgresql的目录可以看到生成的数据目录data以及该目录的相关数据和配置文件:

如上图,base目录是表空间目录,global目录是相关全局变量的目录,pg_hba.conf和postgresql.conf在之前的博客也都提及了,一个是访问控制配置(.0.0.1改为信任的客户端ip网段使其可以远程访问),一个是postgresql主配置文件(listen_address=localhost改为星号使其监听整个网络),方便起见我这里将pg_hba.conf的ip地址修改为0.0.0.0/0,而加密方式改为md5,就表示需要密码访问,算是提供一个最低级的安全防护:

而postgresql.conf就像上面说的那样修改一下listen_address使其监听整个网络即可:

最后别忘记开放pg的端口,否则即使做了上面两处修改客户端依然无法连接postgresql,所以将端口加入到zone即可,依次运行以下命令(注意此处需要切回root用户,否则没有权限):

firewall-cmd --zone=public --add-port=/tcp --permanent

firewall-cmd --reload

至此就配置完毕了,还可以通过firewall-cmd --zone=public --list-ports来查看已打开的端口列表再次确认一下,看到如下提示则说明已成功开启端口:

至此配置相关的内容就全部完成了,最后就是启动并连接数据库了。

启动和连接

在初始化数据库结束时我们已经看到了启动命令,如下图:

由于我们设置了环境变量,所以已经指定了数据目录PGDATA, -1表示日志文件目录,通常需要指定,所以我们在/usr/local/postgresql根目录下再创建一个log目录用来存放日志文件(注意别忘记赋予可写的权限),

最后运行pg_ctl start -l /usr/local/postgresql/log/pg_server.log即可启动数据库,看到如下提示就说明启动成功了:

或者通过ps -ef|grep postgres查看一下postgres相关是否存在相关进程,如下图也可以说明已启动成功:

启动成功后我们就可以通过postgresql自带的客户端工具psql来进行连接,直接输入psql看到版本信息则说明连接成功:

而在日志文件目录中可以看到数据库日志文件以及刚才的启动日志:

接下来要做的第一件事就是设置postgres用户的密码(默认为空),用psql连接成功后直接输入password即会提示输入两次密码,如下图:

此处我们暂且将密码修改为,通过l命令即可查看数据库列表,关于psql工具的使用在此处就不再做过多赘述。最后也是最重要的一点就是验证非本地客户端工具的连接了,毕竟我们是要做数据库服务器的,这里我选择的工具是Navicat Premium,在主机(Windows7)打开Navicat与虚拟机中的postgresql服务器进行连接测试:

如上图,可以发现连接成功,同理停止数据库可以使用命令pg_ctl stop来关闭postgresql服务,很简单,至此关于源码编译安装postgresql就已经全部结束了。

总结

简单记录一下postgreSQL9.5版本在Linux CentOS 7中进行编译安装的全过程,希望对遇到同样问题的朋友有所帮助,The End。

Mybatis调用PostgreSQL存储过程实现数组入参传递 前言项目中用到了Mybatis调用PostgreSQL存储过程(自定义函数)相关操作,由于PostgreSQL自带数组类型,所以有一个自定义函数的入参就是一个int数组,形

PostgreSQL分区表(partitioning)应用实例详解 前言项目中有需求要垂直分表,即按照时间区间将数据拆分到n个表中,PostgreSQL提供了分区表的功能。分区表实际上是把逻辑上的一个大表分割成物理上

PostgreSQL安装、配置及简单使用方法 一、PostgreSQL简介1、什么是PostgreSQLPostgreSQL数据库是目前功能最强大的开源数据库,支持丰富的数据类型(如JSON何JSONB类型,数组类型)和自定义类型。

标签: centos7源码包安装

本文链接地址:https://www.jiuchutong.com/biancheng/312221.html 转载请保留说明!

上一篇:Linux CentOS 7安装PostgreSQL9.3图文教程(安装centos7.2)

下一篇:Mybatis调用PostgreSQL存储过程实现数组入参传递(mybatis调用存储过程详解)

  • 公司取得违约金合法吗
  • 增值税专用发票抵扣期限
  • 扫码开票开错了怎么改
  • 采购商品的会计分录料未到票到
  • 税控盘锁死日期查询
  • 公司无偿更换产品账务如何处理
  • 以销定产如何核算成本
  • 债务清偿如何进行税务处理
  • 冲以前年度成本会计处理
  • 税务退进项税会计处理
  • 未实缴出资的股东退股
  • 多计提以前年度损益调整账务处理怎么做
  • 网银 密码器
  • 公司预付签证费怎么入账
  • 预付账款下月做什么科目
  • 销售成本结转中的库存商品的单价错了怎么改u8
  • 跨行业能开发票吗
  • 房地产开发企业应交税费科目
  • 发票抬头是繁体字怎么办
  • 免抵退和免退税哪种划算
  • 小规模纳税人需要汇算清缴吗
  • 外地预缴附加税减半
  • 企业收到现金支票
  • 已确定收入后补缴增值税
  • 失控发票一定要盖章吗
  • 建筑行业会计成本会计工作流程
  • 个体户生产经营费用与家庭生活费用无法划分
  • windows11怎么设置默认应用
  • mac怎么转到苹果系统
  • 银行收到退款怎么回复
  • windows闹钟
  • mac笔记本装了双系统后打开苹果系统和原来一样吗
  • PHP:pg_escape_string()的用法_PostgreSQL函数
  • uniapp 安卓原生
  • element分页器
  • 专项贷款损失准备金在一定程度上具有资本的性质
  • 建设期需要流动资金吗
  • 临时工工资计入哪里
  • php @method
  • 所得税季报本月数是指
  • php读取二进制文件
  • Thinkphp 中 distinct 的用法解析
  • 强化学习之stable_baseline3详细说明和各项功能的使用
  • h5支付功能
  • mask rcnn优点
  • 微信利用php创建文件
  • 城镇土地使用税减免税政策2023年
  • 怎么把其他应收款的转到其他应付款
  • 电子软件是如何诞生的
  • php用户评论
  • 一般纳税人给小规模开普票的税率
  • 代收往来款的会计分录
  • 附加税扣款时做成了借税金及附加怎么办
  • 房屋租赁如何入账
  • 银行利息怎么算10万块三年多少利息
  • 无形资产租金计入什么科目
  • 子公司向母公司交利润 需要纳税吗
  • 事业单位如何调档案
  • 建筑工程公司需要哪些资质证书
  • 企业代办业务有哪些
  • 自产自用的产品增值税怎么算
  • 用于出租的设备属于什么资产
  • 一般纳税人的服务费税率是多少
  • 结转周转材料成本
  • 会计核算健全的单位 可以选择小规模纳税的有
  • 消耗性生物资产与生产性生物资产的区别
  • 根据企业会计准则第4号固定资产,企业可选用的折旧方法
  • centos6安装yum源
  • linux find命令查找文件名
  • vim的配置文件
  • win7系统鼠标右键菜单设置
  • win10系统中怎么安装安卓应用
  • win8怎么隐藏桌面图标
  • linux扩充inode
  • 遮罩层中对象的作用是
  • linux 环境 mysql写入中文报错
  • sqlyog使用
  • python 在线运行环境
  • 四川国税局普通发票查询?
  • 税控盘时钟异常去政务大厅那个窗口办理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设