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包 ...
随机推荐
- DTLZ
DTLZ 开新坑,未完待续 觉得有用的话,欢迎一起讨论相互学习~Follow Me Reference [1] Multiobjective Immune Algorithm with Nondomi ...
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器解决方案之Nodejs调用bat或sh脚本
关于EasyDSS流媒体服务器 EasyDSS商用流媒体服务器解决方案是一套集流媒体点播.转码与管理.直播.录像.检索.时移回看于一体的一套完整的商用流媒体服务器解决方案,EasyDSS高性能RTMP ...
- linux python 安装 pymssql
其实也不是很完整的. 我主要在dockers中的alpine linux 下进行开发. 这里主要说的就是如何在alpine下安装pymssql 多级依赖 pymssq 依赖 Cython , Cyth ...
- linux 资源
linux 资源查看 cpu 信息 通过/proc/cpuinfo 查看 # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 ...
- Zabbix 3.0 配置企业微信报警(注册---测试)
一.申请企业微信 1.登录企业微信官网,点击企业注册 二.配置企业微信 1.邀请管理员使用企业微信,如果有多个人直接添加新成员 2.管理员收到邀请,下载手机版企业微信,使用微信号登陆即可 3.创建应用 ...
- Ajax跨域请求附带Cookie/Ajax跨域请求附带身份凭证
一.跨域请求中默认不带cookie等验证凭证 尤其对于post请求. 对于ajax请求,其中post,get都可以正常访问. withCredentials: false, // 允许携带cookie ...
- web记住我功能的实现
在web网页中经常可以看到记住我这样的功能,其实现原理是登陆时候在response中写入cookie,发送请求时,取出cookie判断,如果有则说明已经登陆 写cookie Cookie cookie ...
- MYSQL --Subquery returns more than 1 row查询结果多于一行
Subquery returns more than 1 row表示子查询返回了多行数据 例如: select * from table1 where table1.colums=(select co ...
- QT 学习基础问题记录
1. connect 函数 需要先创建发送者和接收者实例,并且信号函数和槽函数如果有参数,需要在 connect 函数使用时指定相关参数类型. 2.窗口控件设置 设置窗口的最大化.最小化.问号提示等控 ...
- grpc Unary模式下客户端创建insecure channel的主要流程
(原创)C/C/1.25.0-dev grpc-c/8.0.0, 使用的例子是自带的例子GreeterClient grpc Unary模式下客户端创建insecure channel的主要流程 gr ...