Linux 下 PostgreSQL 源码编译安装

由于微信不允许外部链接,你需要点击文章尾部左下角的 "阅读原文",才能访问文中链接。

PostgreSQL 是一个功能强大的开源对象关系数据库管理系统(ORDBMS),它从伯克利写的 POSTGRES 软件包发展而来(1995 年几个 UCB 的学生为 Post-Ingres 开发了 SQL 的接口,正式发布了 PostgreSQL95,随后一步步在开源社区中成长起来),经过十几年的发展, PostgreSQL 已经成为世界上发展最快最受欢迎的数据库系统之一。

本文章主要介绍在 CentOS 下源码编码安装 PostgreSQL-10.0 的一些简单步骤,以供参考。


新增用户组及用户

PostgreSQL 默认是通过 postgres:postgres 来启动和使用的,因此在安装 PostgreSQL 前需要先创建 postgres 用户组及 postgres 用户。

# 在 root 权限下进行
$ groupadd postgres                    # 添加postgres用户组
$ useradd postgres -g postgres            # 添加postgres用户
$ passwd postgres                     # 设置postgres用户密码


PostgreSQL 安装
$ wget https://ftp.postgresql.org/pub/source/v10.0/postgresql-10.0.tar.gz
$ tar zvxf postgresql-10.0.tar.gz
$ cd postgresql-10.0
$ ./configure --prefix=/data/softwares/pgsql
$ make
$ make install

解决依赖:

FAQ1:configure: error: readline library not found
$ yum install readline-devel

FAQ2:configure: error: zlib library not found
$ yum install zlib-devel


PostgreSQL 启动
# 新建数据库数据文件目录
$ mkdir /data/softwares/pgsql/data

#
新建数据库 log 文件目录
$ mkdir /data/softwares/pgsql/log

#
修改目录拥有者
$ chown postgres:postgres /data/softwares/pgsql/data -R
$ chown postgres:postgres /data/softwares/pgsql/log -R

#
执行数据库初始化脚本
$ su postgres
bash-4.1$ /data/softwares/pgsql/bin/initdb --encoding=utf8 -D /data/softwares/pgsql/data

#
启动 PostgreSQL 服务
bash-4.1$ /data/softwares/pgsql/bin/pg_ctl -D /data/softwares/pgsql/data -l /data/softwares/pgsql/log/postgresql.log start    #postgres 用户下执行

#
登录 PostgreSQL 数据库
bash-4.1$ psql

Linux 下 PostgreSQL 源码编译安装_第1张图片


PostgreSQL 重启
$ su postgres
bash-4.1$ /data/softwares/pgsql/bin/pg_ctl -D /data/softwares/pgsql/data -l /data/softwares/pgsql/log/postgresql.log restart


PostgreSQL 开机启动设置

解压后的 postgresql-x.x.x 下提供了基于 freebsd、linux、osx 3 个系统的 postgresql 启动命令。

1)对于通过源码自定义安装的 pgsql,需要修改相关启动脚本:

$ cd postgresql-10.0/postgresql-10.0/contrib/start-scripts
$ vi linux
......
......
# Installation prefix
prefix=/data/softwares/pgsql

# Data directory
PGDATA="/data/softwares/pgsql/data"

# Who to run the postmaster as, usually "postgres".  (NOT "root")
PGUSER=postgres

# Where to keep a log file
PGLOG="$PGDATA/serverlog"
......
......

2)设置数据库开机启动:

$ cp /data/softwares/source/postgresql-10.0/postgresql-10.0/contrib/start-scripts/linux /etc/init.d/postgresql

#
添加执行权限
$ chmod a+x /etc/init.d/postgresql

#
添加至开机启动
$ chkconfig --add postgresql
$ chkconfig postgresql on

3)查看 postgresql 状态

$ service postgresql status
pg_ctl: server is running (PID: 32586)
/data/softwares/pgsql/bin/postgres "-D" "/data/softwares/pgsql/data"


·end·

—如果喜欢,快分享给你的朋友们吧—

我们一起愉快的玩耍吧

本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

你可能感兴趣的:(数据库,linux,mysql,java,postgresql)