源码编译安装Postgresql 11.4

1 环境

  • 操作系统: Centos 7.6 (cat /etc/redhat-release)
  • postgresql版本: 11.4(因为12还是beta版)

    2 准备工作

    2.1 安装gcc编辑器

      [root@localhost postgresql-11.4]# gcc --version
      gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)
      Copyright © 2015 Free Software Foundation, Inc.
      本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
      包括没有适销性和某一专用目的下的适用性担保。
    
    gcc用于编译源码

    2.2 安装make

      [root@localhost postgresql-11.4]# make --version
      GNU Make 3.82
      Built for x86_64-redhat-linux-gnu
      Copyright (C) 2010  Free Software Foundation, Inc.
      License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
      This is free software: you are free to change and redistribute it.
      There is NO WARRANTY, to the extent permitted by law.
    
    make用于批量编译链接源码,实际干活的还是gcc

    2.3 安装readline

      yum install readline
      yum -y install -y readline-devel
    readline是个坑啊。可以选择不安装readline,后果是在psql里执行完命令,想用方向键再次获取该命令时就成了乱码。所以必须要安装readline。
    只yum install readline时,configure的时候任然会报错,提示找不到readline。解决方法是安装readline-devel。

    2.4 安装zlib-devel

      yum install zlib  //一般情况下,系统已经默认安装了zlib
      yum install zlib-devel
    zlib用于数据压缩

    3 下载postgresql源码

    postgresql的官方网站下载:https://www.postgresql.org/

    4 编译安装

    4.1 解压下载的压缩包

      cd /home/software/
      tar -xzvf postgresql-11.4.tar.gz 

    4.2 创建postgresql的安装目录

      mkdir /home/app/postgresql

    4.3 生成makefile

      ./configure --prefix=/home/app/postgresql

    4.4 编译安装

      make && make install
    All of PostgreSQL successfully made. Ready to install.
    [1]+ 完成 make

    4.5 安装工具集

      cd /home/software/postgresql-11.4/contrib
      make && make install

    4.6 创建postgres用户:

      groupadd postgres
      useradd -g postgres postgres
    为了安全考虑,postgresql不允许使用root用户操作数据库,我们在系统中为了使用postgresql添加一个用户postgres:
    也可以是其他用户名,但是习惯上大家都是创建postgres用户作为数据库的超级用户。
    初始化数据库时,就以这个用户作为数据库的超级用户

    4.7 修改data目录的用户为postgres

      mkdir /home/app/postgresql/data
      chown -R postgres:postgres /home/app/postgresql/data

    4.8 修改环境变量

      su postgres 
      vim /home/postgres/.bash_profile

          添加环境变量:

      export PGHOME=/home/app/postgresql
      export PGDATA=/home/app/postgresql/data
      export PATH=$PGHOME/bin:$PATH
      export MANPATH=$PGHOME/share/man:$MANPATH
      export LANG=en_US.utf8
      export DATE=`date +"%Y-%m-%d %H:%M:%S"`
      export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
      alias rm='rm  -i'
      alias ll='ls -lh'

          然后使环境变量立即生效,否则initdb命令会找不到:

      source /home/postgres/.bash_profile

    4.9 初始化数据库

      su postgres
      initdb -D /home/app/postgresql/data/
    Success. You can now start the database server using:
    pg_ctl -D /home/app/postgresql/data/ -l logfile start

    4.10 启动数据库

      su postgres
      cd /home/postgres  //logfile需要在postgres的用户目录下创建
      pg_ctl -D /home/app/postgresql/data/ -l logfile start

      查看5432端口是否已经启动

      netstat -nltp|grep 5432

    4.11 添加postgresql至服务

      cd /home/software/postgresql-11.4/contrib/start-scripts
      chmod a+x linux.
      cp linux /etc/init.d/postgresql
    此时就可以使用 /etc/init.d/postgresql stop 来停止postgresql
    也可以使用:service postgresql start 来启动postgresql
    修改postgresql脚本中prefix和PGDATA的内容
      chkconfig --add postgresql   //设置服务开机启动

    5 配置数据库允许连接

    #设置监听整个网络,查找“listen_addresses ”字符串,
    vim /home/app/postgresql/data/postgresql.conf
    #修改为如下:
    listen_addresses = '*'
    
    #配置连接方式:
     vim /home/app/postgresql/data/pg_hba.conf
    #修改为如下:
    host    all             all             192.168.2.0/24           md5

结束

23 声望
0 粉丝
0 条评论
推荐阅读
postgres数据库相关操作
1、新增用户并同时设置密码:create role jixiao with password 'jixiao'2、新增数据库:create database jixiao with owner = jixiao

SHIYIBODEC阅读 356

特性分析 | GreenPlum 的并行查询优化策略详解
GreenPlum 采用 Share Nothing 的架构,良好的发挥了廉价PC的作用。自此I/O不在是 DW(data warehouse) 的瓶颈,相反网络的压力会大很多。但是 GreenPlum 的查询优化策略能够避免尽量少的网络交换。对于初次接触 G...

dbkernel阅读 1.6k

KaiwuDB delete流程解读
delete主要分为两个部分,一个部分为scan过程,拉取表中的数据,第二部分,根据过滤条件,调用b.Del()函数删除对应的数据。相关逻辑计划对象图为:

KaiwuDB阅读 1.1k

Zino开发框架简介
Zino定位为企业级应用框架,奉行“约定优于配置”的原则,借鉴Node的Egg.js、Java的Spring Boot、Gloang的Beego,提供与axum(已实现)、actix-web(计划中)等框架的集成,目前仍在快速迭代开发中。

photino阅读 803

腾讯云 Ubuntu 20.4 配置 PostgreSQL 14 远程访问
ubuntu 添加腾讯和阿里的源后,PostgreSQL 的版本是12,如果想安装12以后的版本,需要按pg 官网的方法,把pg的下载地址加到源列表中,代码如下:

today阅读 792

如何使用码匠连接 PostgreSQL
PostgreSQL 是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),它具有许多强大的功能,PostgreSQL 支持大部分的 SQL 标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务...

码匠Majiang阅读 734

封面图
KaiwuDB协议代码解析(2)
- 数据请求阶段 -Part 1 - 简单查询客户端发送 Query (‘Q’) 消息给服务端,包含了一条字符串类型的 SQL 语句。 {代码...} 服务端收到 Query 消息,解析 SQL 语句,生成抽象语法树 (AST),并传给执行器执行,获得...

KaiwuDB阅读 599

封面图
23 声望
0 粉丝
宣传栏