如何使用yum部署PostgreSQL 10?

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/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm

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

2.2.2 检查yum源

yum search postgresql10

可见如下提示,

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.cn99.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.163.com
==================================== N/S matched: postgresql10 =====================================
postgresql10-debuginfo.x86_64 : Debug information for package postgresql10
postgresql10-tcl-debuginfo.x86_64 : Debug information for package postgresql10-tcl
postgresql10.x86_64 : PostgreSQL client programs and libraries
postgresql10-contrib.x86_64 : Contributed source and binaries distributed with PostgreSQL
postgresql10-devel.x86_64 : PostgreSQL development header files and libraries
postgresql10-docs.x86_64 : Extra documentation for PostgreSQL
postgresql10-libs.x86_64 : The shared libraries required for any PostgreSQL clients
postgresql10-odbc.x86_64 : PostgreSQL ODBC driver
postgresql10-plperl.x86_64 : The Perl procedural language for PostgreSQL
postgresql10-plpython.x86_64 : The Python procedural language for PostgreSQL
postgresql10-pltcl.x86_64 : The Tcl procedural language for PostgreSQL
postgresql10-server.x86_64 : The programs needed to create and run a PostgreSQL server
postgresql10-tcl.x86_64 : A Tcl client library for PostgreSQL
postgresql10-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 postgresql10-server

2.3.2 检查安装的软件包

rpm -qa *postgresql*

显示如下:

postgresql10-10.6-1PGDG.rhel7.x86_64
postgresql10-libs-10.6-1PGDG.rhel7.x86_64
postgresql10-server-10.6-1PGDG.rhel7.x86_64

2.4 配置PostgreSQL

2.4.1 配置环境变量

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

2.4.2 初始化数据库

postgresql-10-setup initdb

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

Initializing database ... OK

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

systemctl start postgresql-10.service
systemctl enable postgresql-10.service

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

systemctl status postgresql-10.service
systemctl reload postgresql-10.service
systemctl restart postgresql-10.service
systemctl stop postgresql-10.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

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

16801 /usr/pgsql-10/bin/postmaster -D /var/lib/pgsql/10/data/
16803 postgres: logger process
16805 postgres: checkpointer process
16806 postgres: writer process
16807 postgres: wal writer process
16808 postgres: autovacuum launcher process
16809 postgres: stats collector process
16810 postgres: bgworker: logical replication launcher

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

2.4.5 检查服务的版本

psql -V

可见如下显示,

psql (PostgreSQL) 10.6

2.5 连接到PostgreSQL

2.5.1 切换到PostgreSQL用户

su - postgres

2.5.2 登录到PostgreSQL

psql

显示如下,

psql (10.6)
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/10/data/postgresql.conf

加入如下配置:

listen_addresses = '*'
port = 5432
password_encryption = md5

重启服务使配置生效,

systemctl restart postgresql-10.service

2.6.3 配置用户连接权限

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

加入如下配置:

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

重载使服务生效,

systemctl reload postgresql-10.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/10/index.html
https://www.postgresql.org/docs/

没有评论

发表回复

PostgreSQL
如何使用yum部署PostgreSQL 9?

1 基础知识 1.1 PostgreSQL简介 PostgreSQL是一个功能强大的开源对象关系数据 …

PostgreSQL
如何管理PostgreSQL的角色?

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

PostgreSQL
如何管理PostgreSQL的库?

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