Linux CentOS 7 安装PostgreSQL 9.5 --步骤详解

前言

版本:  
PostgreSQL 9.5

linux:CentOS7

下载
在postgresql的官方即可找到源码文件目录,地址如下:https://www.postgresql.org/ftp/source/,在下载列表中根据需求选择版本,如下图:


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


如上图,可以看到提供了两种压缩格式,此处我们选择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配置文件:


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

  1. make

  2.  

    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文件并追加以下内容:


修改完成后可以通过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在之前的博客也都提及了,一个是访问控制配置(127.0.0.1改为信任的客户端ip网段使其可以远程访问),一个是postgresql主配置文件(listen_address=localhost改为星号使其监听整个网络),方便起见我这里将pg_hba.conf的ip地址修改为0.0.0.0/0,而加密方式改为md5,就表示需要密码访问,算是提供一个最低级的安全防护:


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


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

  1. firewall-cmd --zone=public --add-port=5432/tcp --permanent

  2.  

    firewall-cmd --reload

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

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

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

由于我们设置了环境变量,所以已经指定了数据目录PGDATA,-l表示日志文件目录,通常需要指定,所以我们在/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即会提示输入两次密码,如下图:


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

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

原文地址:https://www.cnblogs.com/telwanggs/p/12664938.html

时间: 2024-08-10 19:15:34

Linux CentOS 7 安装PostgreSQL 9.5 --步骤详解的相关文章

Linux CentOS 7 安装PostgreSQL 9.5(源码编译)

前言 之前的博客记录了通过rpm包的形式安装PostgreSQL 9.3(Linux CentOS 7 安装PostgreSQL 9.3(发行版本)),本篇blog将记录一下通过源码编译的形式安装PostgreSQL 9.5. 下载 在postgresql的官方即可找到源码文件目录,地址如下:https://www.postgresql.org/ftp/source/,在下载列表中根据需求选择版本,如下图: 进入子目录后,可以看到文件列表: 如上图,可以看到提供了两种压缩格式,此处我们选择pos

Centos 6.5搭建SVN服务步骤详解

Centos 6.5搭建SVN服务步骤详解 一:SVN的运行方式 SVN服务器有2种运行方式, 本文介绍独立服务器的安装方法. 1.    独立服务器 (例如:svn://xxx.com/xxx): 2.    借助apache(例如:http://svn.xxx.com/xxx): 二:安装SVN 1.用yum安装svn yum -y install subversion 2.查看svn版本 svnversion --version或者/usr/bin/svnversion --version

Linux/centos/redhat下各种压缩解压缩方式详解

1.zip命令 zip -r myfile.zip ./* 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. 2.unzip unzip -o -d /root/ myfile.zip 把myfile.zip文件解压到 /root/ -o:不提示的情况下覆盖文件: -d:-d /root 指明将文件解压缩到/root目录下: 3.其他 zip -d myfile.zip test.txt 删除压缩文件中test.txt文件 zip -m myf

Linux CentOS 7 安装PostgreSQL 9.3(发行版本)

前言 如题,本篇blog记录一下在Linux CentOS 7中安装PostgresSQL的整个过程以及数据库配置等,在Linux系统中,PostgreSQL的安装方式分两种,分别是: 二进制安装包安装 源码编译安装 由于我们没有什么特殊需求所在在此选择较为简单的方式--二进制安装包安装,二进制包安装的方法一般都是通过不同发行版本的Linux下的包管理器进行的,例如Debian和Ubuntu下是使用apt-get命令或aptitude命令来安装,命令如下: sudo apt-get instal

CentOS 6 安装,配置 httpd-2.4详解

实验主机IP 172.18.254.37 ,此时httpd程序版本为2.2.15,apr,apr-util版本均为1.3.9. 主要思路:要想此主机应用httpd-2.4,要编译安装httpd-2.4,升级apr,apr-util版本为1.4+ 安装详解: 1.安装开发环境包组和开发程序包 # yum groupinstall "Development Tools" "Server Platform Development" -y   //开发环境包组 # yum 

Linux CentOS 服务器搭建与初始化配置图文详解

这几天对服务器兴趣贼为浓厚,在虚拟机上装了一个CentOS7玩了玩,遇到过很多问题,比如网卡驱动设置,不能ping 等等问题,然后掏钱买个ECS搭服务器玩玩,下面就开始谢谢我的心路历程吧. 首先 买服务器,什么阿里云,百度云.腾讯云等等,随便买一个低配就好了,我买的学生机,9.9一个月,便宜的不能再便宜了,廉价的不能再廉价了. (自带mysql数据库,php Apache运行环境,FTP,VSftpd,这让我省了很多事) 第一步:安装jdk 去官网下载jdk(官网:http://www.orac

CentOS 7.0安装配置Vsftp服务器步骤详解

安装Vsftp讲过最多的就是在centos6.x版本中了,这里小编看到有朋友写了一篇非常不错的CentOS 7.0安装配置Vsftp服务器教程,下面整理分享给各位. 一.配置防火墙,开启FTP服务器需要的端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止

在windows7系统上安装Linux-CentOS双系统步骤详解

需要的软件: 1)EasyBCD-用来添加和修改启动项 2)分区助手 3)WinGrub-查看分区卷工具 4)Ext2Fsd-在安装镜像大于4G的时候使用 第一步:将以上软件安装,在我的电脑-管理-磁盘管理中将想要安装centos的分区--删除卷. 打开软件助手,其中就能看到之前创建的未分配空间,右键--创建分区,10G,只是用来存放安装文件----提交即可 第二步:将下载的CentOS-6.x-x86_64-bin-DVD1.iso解压,将其中的images和isolinux两个文件夹复制到1

centos磁盘安装与磁盘分区方案详解

安装前须知: 前几天自己研究了下几个linux系统,还是觉着centos要好一些.相对稳定点,起码桌面系统还是比 ubuntu 强安装centos并不难,安装方法多得是,像硬盘安装,U盘安装,最简单方便得当然是光盘安装,而且刻录一张管盘仅仅需要10分钟,比硬盘安装和U盘安装需要仔细研究大量得说明文档省事得多. 我得是windos7 和 centos 双系统安装.之前有个windows7的系统.后来我又把最后的一个磁盘 G盘删除了,用来安装 CentOS. 我给centos 留了20+G得硬盘空间