如何使用yum部署PostgreSQL 9?

PostgreSQL

1 基础知识

1.1 PostgreSQL简介

PostgreSQL是一个功能强大的开源对象关系数据库系统,经过30多年的积极开发,具有良好的可靠性、强大的功能和优良的性能。
PostgreSQL是Berkeley开源代码的后代,它支持大部分SQL标准。

1.2 PostgreSQL的特点

– 高度靠性
– 考度可扩展性(支持自定义数据类型、函数和不同的编程语言代码而无需编译)

1.3 PostgreSQL的架构

2 最佳实践

2.1 系统的配置

2.1.1 基本配置

IP Address = 10.168.0.103
OS = CentOS 7.6 x86_64
HostName = postgresql.cmdschool.org

2.1.2 安装常用工具

yum install -y vim

2.1.3 升级系统

yum -y update

执行完升级之后,重启操作系统,

reboot

2.1.4 防火墙配置(可选)

firewall-cmd --permanent --add-service postgresql
firewall-cmd --reload
firewall-cmd --list-all

2.2 软件环境配置

2.2.1 配置yum源

yum install -y https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7.6-x86_64/pgdg-centos96-9.6-3.noarch.rpm

注:其他版本的源请参考以下链接,
https://yum.postgresql.org/repopackages.php

2.2.2 检查yum源

yum search postgresql9

可见如下提示,

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.jdcloud.com
 * extras: mirrors.aliyun.com
 * updates: mirror.jdcloud.com
pgdg96                                                                       | 4.1 kB  00:00:00
(1/2): pgdg96/7/x86_64/group_gz                                              |  249 B  00:00:01
(2/2): pgdg96/7/x86_64/primary_db                                            | 208 kB  00:00:02
===================================== N/S matched: postgresql9 =====================================
postgresql96-debuginfo.x86_64 : Debug information for package postgresql96
postgresql96-tcl-debuginfo.x86_64 : Debug information for package postgresql96-tcl
postgresql96.x86_64 : PostgreSQL client programs and libraries
postgresql96-contrib.x86_64 : Contributed source and binaries distributed with PostgreSQL
postgresql96-devel.x86_64 : PostgreSQL development header files and libraries
postgresql96-docs.x86_64 : Extra documentation for PostgreSQL
postgresql96-libs.x86_64 : The shared libraries required for any PostgreSQL clients
postgresql96-odbc.x86_64 : PostgreSQL ODBC driver
postgresql96-plperl.x86_64 : The Perl procedural language for PostgreSQL
postgresql96-plpython.x86_64 : The Python procedural language for PostgreSQL
postgresql96-pltcl.x86_64 : The Tcl procedural language for PostgreSQL
postgresql96-server.x86_64 : The programs needed to create and run a PostgreSQL server
postgresql96-tcl.x86_64 : A Tcl client library for PostgreSQL
postgresql96-test.x86_64 : The test suite distributed with PostgreSQL

  Name and summary matches only, use "search all" for everything.

2.3 安装PostgreSQL包

2.3.1 安装PostgreSQL服务端

yum install -y postgresql96-server

2.3.2 检查安装的软件包

rpm -qa *postgresql*

显示如下:

postgresql96-server-9.6.11-1PGDG.rhel7.x86_64
postgresql96-9.6.11-1PGDG.rhel7.x86_64
postgresql96-libs-9.6.11-1PGDG.rhel7.x86_64

2.4 配置PostgreSQL

2.4.1 配置环境变量

echo 'export PGSQL_HOME=/usr/pgsql-9.6' > /etc/profile.d/pgsql.sh
echo 'export PATH=${PGSQL_HOME}/bin:$PATH' >> /etc/profile.d/pgsql.sh
source /etc/profile

2.4.2 初始化数据库

postgresql96-setup initdb

如果没有意外,则显示以下信息,

Initializing database ... OK

2.4.3 启动服并配置服务自启动

systemctl start postgresql-9.6.service
systemctl enable postgresql-9.6.service

其他的服务控制命令,请参考如下指令,

systemctl status postgresql-9.6.service
systemctl reload postgresql-9.6.service
systemctl restart postgresql-9.6.service
systemctl stop postgresql-9.6.service

2.4.4 检查服务的启动

netstat -antp | grep postmaster

其他的服务控制命令,请参考如下指令,

tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      16801/postmaster
tcp6       0      0 ::1:5432                :::*                    LISTEN      16801/postmaster

注:以上可知该服务使用的端口是“5432/tcp”且只有本机可访问
亦可以进程的方式查看,

pgrep -a postmaster

其他的服务控制命令,请参考如下指令,

7605 /usr/pgsql-9.6/bin/postmaster -D /var/lib/pgsql/9.6/data/
7607 postgres: logger process
7609 postgres: checkpointer process
7610 postgres: writer process
7611 postgres: wal writer process
7612 postgres: autovacuum launcher process
7613 postgres: stats collector process

注:以上可知数据目录为“/var/lib/pgsql/9.6/data/”

2.4.5 检查服务的版本

psql -V

可见如下显示,

psql (PostgreSQL) 9.6.11

2.5 连接到PostgreSQL

2.5.1 切换到PostgreSQL用户

su - postgres

2.5.2 登录到PostgreSQL

psql

显示如下,

psql (9.6.11)
Type "help" for help.

postgres=#

注:以上证明你处于PostgreSQL提示符环境

2.5.3 显示当前的数据库

\l

数据库显示如下,

                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(3 rows)

2.5.4 获取帮助

\h

2.5.5 退出PostgreSQL登录

\q

2.6 配置TCP/IP用户登录

2.6.1 修改管理员密码

su - postgres
psql
\password

2.6.2 开启协议的连接方式

vim /var/lib/pgsql/9.6/data/postgresql.conf

加入如下配置:

listen_addresses = '*'
port = 5432
password_encryption = no

重启服务使配置生效,

systemctl restart postgresql-9.6.service

2.6.3 配置用户连接权限

vim /var/lib/pgsql/9.6/data/pg_hba.conf

加入如下配置:

# IPv4 local connections:
host    all             all             0.0.0.0/0               md5

重载使服务生效,

systemctl reload postgresql-9.6.service

参阅文档
==============

简介页面
———-
https://www.postgresql.org/about/

下载页面
———
https://yum.postgresql.org/repopackages.php
https://www.postgresql.org/download/

安装页面
——–
https://www.postgresql.org/download/linux/redhat/

使用文档
——–
https://www.postgresql.org/docs/9.6/index.html
https://www.postgresql.org/docs/

没有评论

发表回复

PostgreSQL
如何管理PostgreSQL的角色?

1 基础知识 1.1 角色的概念 – PostgreSQL使用角色概念管理数据库访问权限 …

PostgreSQL
如何管理PostgreSQL的库?

1 基础知识 1.1 数据仓库的概念 – 数据库是SQL对象的命名集合,即数据对象 &# …

PostgreSQL
如何熟悉PostgreSQL的基本操作?

1 前言 以下是笔者初学PostgreSQL的笔记,此章节适合初学者熟悉PostgreSQL的基本操 …