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 下载源码包
可以先下载在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加密
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:服务端口
连接完数据库,输入 \\password 进行修改密码
以上是关于Centos7.6 PostgreSQL 源码编译安装的主要内容,如果未能解决你的问题,请参考以下文章
Linux CentOS 7 安装PostgreSQL 9.5(源码编译)