热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LinuxCentOS7安装PostgreSQL9.5.17(源码编译)

近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x

近日需要将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 PGDATAPATH
=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin

修改完成后可以通过 $ source ./.bash_profile  使其立即生效

检验环境变量是否设置正确

切换任意目录输入$  which psql  以及  $  psql -V  即可分别查看psql客户端的路径以及postgresql的数据库版本

初始化数据库

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

$  initdb   

初始化成功

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

接下来修改配置文件,pg_hba.confpostgresql.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就全部结束了。

转:https://www.cnblogs.com/guoxiangyue/p/10870012.html



推荐阅读
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 本文详细介绍了IBM DB2数据库在大型应用系统中的应用,强调其卓越的可扩展性和多环境支持能力。文章深入分析了DB2在数据利用性、完整性、安全性和恢复性方面的优势,并提供了优化建议以提升其在不同规模应用程序中的表现。 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 构建基于BERT的中文NL2SQL模型:一个简明的基准
    本文探讨了将自然语言转换为SQL语句(NL2SQL)的任务,这是人工智能领域中一项非常实用的研究方向。文章介绍了笔者在公司举办的首届中文NL2SQL挑战赛中的实践,该比赛提供了金融和通用领域的表格数据,并标注了对应的自然语言与SQL语句对,旨在训练准确的NL2SQL模型。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 使用C#开发SQL Server存储过程的指南
    本文介绍如何利用C#在SQL Server中创建存储过程,涵盖背景、步骤和应用场景,旨在帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 本文详细介绍了如何在 Linux 平台上安装和配置 PostgreSQL 数据库。通过访问官方资源并遵循特定的操作步骤,用户可以在不同发行版(如 Ubuntu 和 Red Hat)上顺利完成 PostgreSQL 的安装。 ... [详细]
author-avatar
敬炜8965肀
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有