Centos7.6 PostgreSQL 源码编译安装

Posted fengfaling2013

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos7.6 PostgreSQL 源码编译安装相关的知识,希望对你有一定的参考价值。

​PostgreSQL​​​官网:​​PostgreSQL: The worlds most advanced open source database​

安装
linux ​​​源码​​编译安装

第1步:安装需要的编译的工具

 yum -y install openssl-devel libxml2-devel libxslt-devel python-devel cmake 
gcc-c++ zlib-devel bzip2 readli

第2步:进入官网下载 源码包

PostgreSQL官网:PostgreSQL: The worlds most advanced open source database 下载源码包

Centos7.6Centos7.6

可以先下载在windows电脑上,通过上传工具传到opt或/home目录

第3步:解压源码包

#解压完会有 opt/postgresql-12.0 文件目录

tar -xvf /opt/postgresql-12.0.tar.gz -C /opt

第4步:创建程序安装目录或编译不指定目录自动生成

mkdir /usr/local/pgsql   

第5步:源码编译

/opt/postgresql-12.0/configure --prefix=/usr/local/postgreSQL

参数解释,根据需要设置

--prefix=prefix 安装到prefix指向的目录;默认为/usr/local/pgsql

--bindir=dir 安装应用程序到dir;默认为prefix/bin

--with-docdir=dir 安装文档到dir;默认为prefix/doc

--with-pgport=port 设置默认的服务器端网络连接服务TCP端口号

--with-tcl 为服务端提供Tcl存储过程支持

--with-perl 为服务端提供Perl存储过程支持

--with-python 为服务端提供Python存储过程支持

在通过源码包安装 PostgreSQL 时,首先需要执行 ./configure

该脚本将运行一些测试来决定一些系统相关的变量, 并检测你的操作系统的特殊设置,并且最后将在编译树中创建一些文件以记录它找到了什么。

如果执行的过程中报如下错误:

configure: error: readline library not found

解决方案 :安装失败时会提示执行 ./configure 加上 --without-readline 选项,不编译 readline:

If you have readline already installed, see config.log for details on the

failure.  It is possible the compiler isnt looking in the proper directory.

Use --without-readline to disable readline support.

但是不建议这样做,readline 的作用是能够在 pg 控制台读取历史命令,就像在 linux shell 中按上下键读取历史命令,不需要再手动输入重复的命令

可安装如下依赖解决该问题:

yum install -y readline-devel

第6步:安装,依次执行下面2个命令

make &make install

第7步:创建postgresql的用户

useradd postgresql

chown -R postgresql:postgresql /usr/local/pgsql

第8步:配置环境变量

vim /etc/profile

#添加如下2行内容

export PGHOME=/usr/local/pgsql

export PATH=$PATH:$PGHOME/bin

#配置环境变量后,执行该命令使环境变量生效

source /etc/profile

第9步:su postgresql 切换到 postgresql用户 执行initdb命令 初始化数据库

#初始化会默认创建postgres数据库。

/usr/local/bin/initdb -D /usr/local/pgsql/data -U postgresql --encoding=UTF8 
--lc-collate=en_US.UTF-8 --lc-ctype=en_US.UTF-8

参数解释,根据需要设置

-D 指定数据库数据位置。必传。也可以设置环境变量PGDATA来替换-D选项。

-U 选择数据库superuser的用户名。这默认为运行initdb的用户的名称。

-W 对于新的超级用户提示输入口令

-E 指定数据库编码,一般为UTF8。这也是您稍后创建的任何数据库的默认编码

第10步:配置 PostgreSQL数据库 服务参数

vim /usr/local/pgsql/data/postgresql.conf

#设置这个数据库绑定所有ip地址(如:127.0.0.0,ipv4,ipv6)

listen_addresses = *

#PostgreSQL数据库服务 TCP 监听的端口

port = 15432 #PostgreSQL数据库服务 TCP 监听的端口

#打开日志收集开关,便于查看日志,发现错误问题

logging_collector = on

#日志存放目录

log_directory = /opt/postgreSQL/log

第11步:配置数据库的访问权限

vim /usr/local/pgsql/data/pg_hba.conf

#表示允许任何ip地址都可以连接这台数据库

host    all             all             0.0.0.0/0            trust

#表示用户远程连接这台数据库,密码使用md5加密

Centos7.6

md5

第12步:启动 postgreSQL 数据库

#启动数据库

# 启动数据库服务(start,stop,restart,status)
./pg_ctl -D /usr/local/pgsql/data/ start
psql -U postgresql -d postgres -h 127.0.0.1 -p 15432
# 进入默认的postgres数据库
./psql postgres
# 创建一个新的数据库
./createdb test
# 进入数据库
./psql test

第13步:修改密码

#连接postgres 数据库

psql -U postgresql -d postgres -h 127.0.0.1 -p 15432

参数解释:

-U postgresql :#初始化数据库的时候使用的用户

-d postgres:#初始化数据库的时候默认创建的数据库

-h 127.0.0.1:#服务器的ip地址

-p 15432:服务端口

Centos7.6

连接完数据库,输入 \\password 进行修改密码

Centos7.6

以上是关于Centos7.6 PostgreSQL 源码编译安装的主要内容,如果未能解决你的问题,请参考以下文章

CentOS7.6上安装postgreSQL

源码编译安装PostgreSQL(pg12)

源码编译安装PostgreSQL(pg12)

Linux CentOS 7 安装PostgreSQL 9.5(源码编译)

Linux CentOS 7 安装PostgreSQL 9.5(源码编译)

CentOS 7 源码编译安装PostgreSQL 9.5