美文网首页pg
CentOS 下 PostgreSQL 的编译安装

CentOS 下 PostgreSQL 的编译安装

作者: 狐狸的面包 | 来源:发表于2018-08-06 09:03 被阅读0次

    一、PostgreSQL简介

    ​ PostgreSQL 数据库是一个自由的对象-关系型数据库服务器(数据库管理系统),它提供了相对其他开源数据库系统(MySQL、Firebird)和专有系统(Oracle、Sybase、IBM 以及微软的 Microsoft SQL Server)之外的另一种选择。
    PostgreSQL强壮的一个特点就是源于它的架构。和其他的商业数据库一样,PostgreSQL可以用于客户与服务器之间的环境(C/S)。这对于用户和开发人员有很多好处。PostgreSQL安装的核心就是数据库服务端进程。它允许在一个独立的服务器上。需要访问存储在数据库中的数据的应用程序必须通过数据库进程。这些客户端无法直接访问数据,即使他们与服务程序在同一个机器上。

    二、源代码安装

    2.1环境库安装

    ​ 首先从网站上下载 PostgreSQL 数据库源代码,在下载列表中选择所需的数据库版本。网站:https://www.postgresql.org/ftp/source
    由于我们要在CentOS下安装,需要选择源码。将PostgreSQL压缩包进行解压,进入解压目录,通过./configure --help 可以看到帮助信息。
    <center>./configure --prefix=/usr/local/postgresql</center>
    如果缺少C编译器,安装一个gcc编译器即可。yum install gcc
    如果缺少readline库,则安装readline包。但是系统一般会自带readline包。
    <center>rpm -qa | grep readline</center>
    但是有时候还需要readline开发包(readline-devel),而不是readline包。
    <center>yum install readline-devel</center>
    若安装的时候还缺少zlib开发包继续安装zlib-develyum install zlib-devel
    配置完成后会发现创建了config.status配置文件:make&&make install

    创建数据目录

    #建postgres数据库的目录
    mkdir -p /var/postgresql/data
    chown postgres:postgres /var/postgresql -R
    chown postgres:postgres /usr/local/postgresql -R
    

    2.2用户权限和环境变量

    首先添加用户postgres useradd postgres
    接下来设置权限,将postgres的数据库目录赋给postgres用户。首先切换到postgres用户 su - postgres 打开.bash_profile

    export PGHOME=/usr/local/postgresql
    export PGDATA=/var/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'
    #alias pg_start='pg_ctl start -D $PGDATA'
    #alias pg_stop='pg_ctl stop -D $PGDATA -m fast'
    

    修改以后,可以source一下使其生效。source ./.bash_profile
    接下来检查是否有正确设定环境变量,任意切换目录输入which psql以及psql -V 即可分别查看psql客户端的路径和postgreSQL的数据库版本。

    2.3数据库初始化

    环境变量配置结束后,直接执行initdb即可初始化DB。在使用initdb进行初始化的同时我们可以指定参数来同时进行一些初始化工作,指定pgdata(postgresql数据目录)、指定encoding(编码)、指定数据库超级用户的用户名和密码等等,在最后面我标记出的这段话指出了如果data目录没有指定,则会默认使用环境变量中的PGDATA,由于之前我们刚刚设置了PGDATA环境变量,所以此处我们也就无需再额外指定,最后执行初始化命令:
    initdb -D /var/postgresql/data pg_ctl D /var/postgresql/data -l /var/postgresql/logfile start

    可以通过SQL语句测试postgreSQL数据库

    psql
    #登录数据库
    
    create database test;
    #创建测试数据库
    
    \c test
    #切换数据库
    
    create table student(
    sno char(10),
    sname char(15),
    age int,
    );
    #创建数据库表
    
    insert into student values('14030110001','WHH',21);
    #插入测试数据
    
    select * from test;
    #输出数据
    

    2.4 修改PostgreSQL数据库的配置实现远程访问

    vim /var/postgresql/data/postgresql.conf
    #设置舰艇网络找到listen_addresses 关键字
    listen_addresses = '*'
    
    
    vim /var/postgresql/data/pg_hba.conf
    #在文件下方添加这句话
    host    all    all    0.0.0.0/0   trust#添加到需要链接的主机地址
    
    

    ​ 查看端口

    #重启服务
    pg_ctl -D /var/postgresql/data -l /var/postgresql/logfile restart
    #停止服务
    pg_ctl -D /var/postgresql/data -l /var/postgresql/logfile stop
    #端口是否启用了
    netstat -anp | grep 5432
    

    此文档为个人总结文档,非原创。

    相关文章

      网友评论

        本文标题:CentOS 下 PostgreSQL 的编译安装

        本文链接:https://www.haomeiwen.com/subject/cthwvftx.html