Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
近日需要将PostgreSQL数据库从Windows中迁移到Linux中,Linux CentOS 7 安装PostgreSQL 9.5.17 安装过程 特此记录。
安装环境:
数据库:PostgreSQL 9.5.17
Linux:CentOS 7.3
数据库源文件下载:
在postgresql的官方即可找到源码文件目录(地址:https://www.postgresql.org/ftp/source/),在列表中找到需要下载的 9.5.17版本

进入目录,看到文件列表,选择.tar.gz格式文件,点击下载

编译安装:
将下载好的数据库安装文件,上传至服务器的/user/local/目录下,然后进入该目录,解压安装包。
# tar -zvxf postgresql-9.5.17.tar.gz
进去解压后的postgresql文件夹,进行编译,并在在编译时指定安装目录
# ./configure --prefix=/usr/local/postgresql
编译出错

没有c编译器,安装gcc
# yum install gcc
安装完成后,再次执行编译
编译出错

缺少readline开发包,安装readline-devel包:
# yum install readline-devel
安装完成后,再次执行编译
编译出错

缺少zlib开发包,安装zlib开发包:
# yum install zlib-devel
安装完成后,再次执行编译
编译成功,成功创建创建了config.status配置文件

编译配置完成,开始执行安装:依次执行:
# make

# make install

编译安装完成
设置用户权限及环境变量
编译安装成功后,接下来要做的就是创建一个普通用户,因为默认超级用户(root)不能启动postgresql,所以需要创建一个普通用户来启动数据库,执行以下命令创建用户:
# useradd admin
需要设置权限,将postgres的数据目录全部赋权给admin用户(此处我将postgres的数据目录指定在在/usr/local/postgresql/data目录下):
# chown -R admin:admin /usr/local/postgresql/
设置相关环境变量
此处仅仅设置admin用户的环境变量,所以首先切换到admin用户
切换用户: # su - admin
然后打开.bash_profile文件并追加以下内容:
打开.bash_profile文件 : $ vi .bash_profile
追加一下内容:
PGHOME=/usr/local/postgresql
export PGHOME
PGDATA=/usr/local/postgresql/data
export PGDATA PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin

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

初始化数据库
由于配置了环境变量,所以此处我们直接执行initdb命令即可完成db初始化
$ initdb
初始化成功

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

接下来修改配置文件,pg_hba.conf和postgresql.conf。一个是访问控制配置(127.0.0.1改为信任的客户端ip网段使其可以远程访问),一个是postgresql主配置文件(listen_address=localhost改为星号使其监听整个网络)。
进入/usr/local/postgresql/data目录,修改文件,这里将pg_hba.conf的ip地址修改为0.0.0.0/0,而加密方式改为md5,就表示需要密码访问:
pg_hba.conf文件修改:

修改postgresql.conf文件
将listen_address=localhost改为星号使其监听整个网络:

同时需要放开机器的5432端口,这里为了方便起见,直接关闭服务器防火墙:
关闭防火墙:
$ systemctl stop firewalld

此时为普通用户,关闭防火墙需要root账户权限,需要输入root账户密码获取权限
禁止防火墙开机启动:
$ systemctl disable firewalld

此时为普通用户,取消防火墙开机启动同样需要root账户权限,需要输入root账户密码获取权限
查看防火墙状态:
$ systemctl status firewalld

防火墙已经关闭
至此配置相关的内容就全部完成了,最后就是启动并连接数据库了。
启动、连接数据库
在初始化数据库结束时我们已经看到了启动命令

由于之前设置了环境变量,所以已经指定了数据目录PGDATA,-l表示日志文件目录,通常需要指定,所以我们在/usr/local/postgresql根目录下再创建一个log目录用来存放日志文件并赋予可写的权限
进入 /usr/local/postgresql目录
创建文件夹
$ mkdir log
赋予权限
$ chown -R admin:admin /usr/local/postgresql/log/
启动数据库
$ pg_ctl start -l /usr/local/postgresql/log/pg_server.log
启动成功:

通过postgresql自带的客户端工具psql来进行连接(在连接是需要制定连接数据库,这里直接连接postgres数据库):
$ psql postgres

设置admin用户的密码(默认为空),用psql连接成功后直接输入 \password 即会提示输入两次密码,如下图:

修改完密码以后,就是最重要的一点就是验证非本地客户端工具的连接了,毕竟我们是要做数据库服务器的,这里我选择的工具是Navicat Premium,在主机(Windows 10)打开Navicat与虚拟机中的postgresql服务器进行连接测试:

可以发现连接成功,同理停止数据库可以使用命令 pg_ctl stop 来关闭postgresql服务,很简单,至此关于源码编译安装postgresql就全部结束了。
Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)的更多相关文章
- Linux 之 软件安装-yum、rpm、源码安装
软件安装-yum.rpm.源码安装 参考教程:[千峰教育] 一.Yum安装软件: 基本说明: 1.yum相当于windows上面的360的软件中心,appstore,安卓的应用商店. 2.yum是re ...
- linux服务器上,yum、rpm、源码编译安装及卸载
源码的编译安装及卸载 源码安装三部曲 1.生成makefile编译文件./configure 一般安装包下面都有一个configure文件,用来生成makefile编译文件常用的参数: --prefi ...
- LNMP架构的源码编译以及yum安装
LNMP架构的源码编译以及yum安装 目录 LNMP架构的源码编译以及yum安装 一.LNMP架构的编译安装 1. 安装nginx服务 (1)关闭防火墙 (2)安装依赖包 (3)创建运行用户 (4)编 ...
- centos7源码编译安装Subversion 1.9.5
svn是Subversion的简称,是一个开放源代码的版本控制系统.svn有两种运行方式:1.独立服务器(svn://xxx.xxx/xxx) 2.借助apache(http://svn.xxx.xx ...
- apache源码编译安装
源码安装apche 下载apache的源码包文件 访问http://mirror.bit.edu.cn/apache/httpd/,复制如下gz文件的链接地址,并使用wget下载到本地 wget -P ...
- NoSql1 在Linux(CentOS)上安装memcached及使用
前言: 今天是初五,生活基本要从过年的节奏中回归到正常的生活了,所以想想也该想想与工作有关的事情了.我之前在工作中会经常使用memcached和redis,但是自己一直没有时间系统的好好看 ...
- Linux环境PostgreSQL源码编译安装
Linux环境PostgreSQL源码编译安装 Linux版本: Red Hat 6.4 PostgreSQL版本: postgresql-9.3.2.tar.gz 数据存放目录: /var/post ...
- Linux(CentOs)下安装Phantomjs + Casperjs
Linux(CentOs)下安装Phantomjs + Casperjs 是参照cnMiss's Blog http://ju.outofmemory.cn/entry/70691的博客进行安装的 1 ...
- linux/centos下安装nginx(rpm安装和源码安装)详细步骤
Centos下安装nginx rpm包 ...
随机推荐
- Python三角函数公式计算三角形的夹角
题目内容: 对于三角形,三边长分别为a, b, c,给定a和b之间的夹角C,则有:.编写程序,使得输入三角形的边a, b, c,可求得夹角C(角度值). 输入格式: 三条边a.b.c的长度值,每个值占 ...
- IPv4分类
IPv4地址按逻辑层次分为五类 A类 保留给政府机构 A类地址第1字节为网络地址,其它3个字节为主机地址.它的第1个字节的第一位固定为0. A类地址网络号范围:1.0.0.0 - 126.0.0.0 ...
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器解决方案之CDN内容分发网络
背景分析 EasyDSS流媒体解决方案提供一站式的转码.点播.直播.录像.检索.时移回放服务,极大地简化了开发和集成的工作,并且EasyDSS支持多种特性,完全能够满足企业视频信息化建设方面的需求.其 ...
- 超级简单,把PuppyLinux安装到U盘
先说说使用感受:上网全是乱码!不支持中文 下载最新版puppylinux,从官网下载 现在U盘引导程序制作工具Unetbootin 打开下载的UNetbootin,进行下面的操作: 制作完毕后,修改U ...
- K8S使用入门-添加一个node
上一篇博客我们已经将K8S部署起来了,现在我们就来介绍一下如何简单使用K8S (1)添加节点 注意事项:不能和k8s master节点的主机名一样.否则会导致k8s无法正常识别出该节点 添加节点是比较 ...
- BottomTabNavigator 顶部导航的显示隐藏
const TabNavigator = createBottomTabNavigator({ ...模块, ...模块, },{ navigationOptions:{ header:null }
- idea修改maven项目名
1.修改pom.xml中相关 <artifactId>seal-hn</artifactId><name>seal-hn</name><descr ...
- adb 命令简介
adb命令配置 1 在命令行下,进入用户目录 cd $HOME 2 .bash_profile文件 输入下行命令获取当前文件列表: ls -al 查看文件列表,如果没有.bash_profile文件, ...
- 使用事件和 CQRS 重写 CRUD 系统
使用事件和 CQRS 重写 CRUD 系统 https://msdn.microsoft.com/zh-cn/magazine/mt790196.aspx https://github.com/mem ...
- Java的三大版本
Java的三大版本 Write Once.Run Anywhere JavaSE:标准版(桌面程序,控制台开发......) JavaME:嵌入式开发(手机,小家电......) JavaEE:E企业 ...