Linux系统之安装PostgreSQL数据库

Linux系统之安装PostgreSQL数据库

  • 一、PostgreSQL介绍
    • 1.PostgreSQL简介
    • 2.PostgreSQL特点
  • 二、本次实践介绍
    • 1.本次实践介绍
    • 2.实践环境介绍
  • 三、配置PostgreSQL的yum仓库源
    • 1.检查本地是否部署PostgreSQL
    • 2.配置镜像源
    • 3.检查yum仓库镜像源状态
  • 四、安装PostgreSQL
    • 1.安装PostgreSQL
    • 2.初始化数据库
    • 3.启动PostgreSQL数据库
    • 4.检查PostgreSQL数据库状态
  • 五、PostgreSQL的基本命令
    • 1.查看PostgreSQL相关文件
    • 2.PostgreSQL的相关命令
  • 六、修改用户密码
    • 1.切换postgres用户
    • 2.登录PostgreSQL数据库
    • 3.修改PostgreSQL数据库用户密码
  • 七、配置PostgreSQL远程访问
    • 1.配置远程访问
    • 2.重启PostgreSQL服务
    • 3.远程连接PostgreSQL数据库

一、PostgreSQL介绍

1.PostgreSQL简介

PostgreSQL (也叫 Postgres) 是一个自由的对象 - 关系数据库服务器 (数据库管理系统),它在灵活的 BSD - 风格许可证下发行。它提供了相对其他开放源代码数据库系统 (比如 MySQL 和 Firebird),和对专有系统比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server 的一种选择。

2.PostgreSQL特点

  • 它是ORDBMS(面向对象的关系数据库管理系统)。
  • 外键引用完整性
  • 用户自定义的类型
  • 表的继承性
  • 视图、规则、子查询
  • 多版本并发控制(MVCC)
  • 复杂的锁定机制
  • 异步复制
  • 流式复制(从9.0开始)
  • 嵌套事务(保存点)

二、本次实践介绍

1.本次实践介绍

从小白视角,以最快速度在LInux系统上部署一个简单的PostgreSQL数据库。

2.实践环境介绍

hostnameIP地址操作系统版本PostgreSQL版本
jeven192.168.3.166centos 7.6

三、配置PostgreSQL的yum仓库源

1.检查本地是否部署PostgreSQL

检查本地环境是否部署过PostgreSQL

[root@jeven ~]# rpm -qa | grep postgres
[root@jeven ~]# 

2.配置镜像源

配置PostgreSQL的yum仓库源,使用的是阿里提供的镜像源。

[root@jeven ~]# rpm -Uvh https://mirrors.aliyun.com/postgresql/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Retrieving https://mirrors.aliyun.com/postgresql/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
warning: /var/tmp/rpm-tmp.kcnTVa: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:pgdg-redhat-repo-42.0-32         ################################# [100%]
[root@jeven ~]# sed -i "s@https://download.postgresql.org/pub@https://mirrors.aliyun.com/postgresql@g" /etc/yum.repos.d/pgdg-redhat-all.repo
[root@jeven ~]# 

sed -i "s@https://download.postgresql.org/pub@https://mirrors.aliyun.com/postgresql@g" /etc/yum.repos.d/pgdg-redhat-all.repo

生成缓存

yum clean cache
yum makecache

3.检查yum仓库镜像源状态

[root@jeven yum.repos.d]# yum repolist all |grep enable 
base/7/x86_64                             CentOS-7 - Base - mirr enabled: 10,072
docker-ce-stable/7/x86_64                 Docker CE Stable - x86 enabled:    211
elrepo                                    ELRepo.org Community E enabled:    157
epel/x86_64                               Extra Packages for Ent enabled: 13,770
extras/7/x86_64                           CentOS-7 - Extras - mi enabled:    515
mysql-connectors-community/x86_64         MySQL Connectors Commu enabled:    213
mysql-tools-community/x86_64              MySQL Tools Community  enabled:     96
mysql57-community/x86_64                  MySQL 5.7 Community Se enabled:    642
pgdg-common/7/x86_64                      PostgreSQL common RPMs enabled:    396
pgdg11/7/x86_64                           PostgreSQL 11 for RHEL enabled:  1,453
pgdg12/7/x86_64                           PostgreSQL 12 for RHEL enabled:  1,071
pgdg13/7/x86_64                           PostgreSQL 13 for RHEL enabled:    823
pgdg14/7/x86_64                           PostgreSQL 14 for RHEL enabled:    552
pgdg15/7/x86_64                           PostgreSQL 15 for RHEL enabled:    263
remi-safe                                 Safe Remi's RPM reposi enabled:  5,134
updates/7/x86_64                          CentOS-7 - Updates - m enabled:  4,857

四、安装PostgreSQL

1.安装PostgreSQL

使用yum直接PostgreSQL13的版本

[root@jeven yum.repos.d]# yum -y install postgresql13-server
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * elrepo: hkg.mirror.rackspace.com
 * remi-safe: ftp.riken.jp
Resolving Dependencies
--> Running transaction check
---> Package postgresql13-server.x86_64 0:13.10-1PGDG.rhel7 will be installed
--> Processing Dependency: postgresql13-libs(x86-64) = 13.10-1PGDG.rhel7 for package: postgresql13-server-13.10-1PGDG.rhel7.x86_64
--> Processing Dependency: postgresql13(x86-64) = 13.10-1PGDG.rhel7 for package: postgresql13-server-13.10-1PGDG.rhel7.x86_64
--> Processing Dependency: libpq.so.5()(64bit) for package: postgresql13-server-13.10-1PGDG.rhel7.x86_64
--> Running transaction check
---> Package postgresql13.x86_64 0:13.10-1PGDG.rhel7 will be installed
---> Package postgresql13-libs.x86_64 0:13.10-1PGDG.rhel7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==================================================================================================================================================
 Package                                  Arch                        Version                                   Repository                   Size
==================================================================================================================================================
Installing:
 postgresql13-server                      x86_64                      13.10-1PGDG.rhel7                         pgdg13                      5.4 M
Installing for dependencies:
 postgresql13                             x86_64                      13.10-1PGDG.rhel7                         pgdg13                      1.4 M
 postgresql13-libs                        x86_64                      13.10-1PGDG.rhel7                         pgdg13                      385 k

Transaction Summary
==================================================================================================================================================
Install  1 Package (+2 Dependent packages)

Total download size: 7.1 M
Installed size: 31 M
Downloading packages:
warning: /var/cache/yum/x86_64/7/pgdg13/packages/postgresql13-libs-13.10-1PGDG.rhel7.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY
Public key for postgresql13-libs-13.10-1PGDG.rhel7.x86_64.rpm is not installed
(1/3): postgresql13-libs-13.10-1PGDG.rhel7.x86_64.rpm                                                                      | 385 kB  00:00:00     
(2/3): postgresql13-13.10-1PGDG.rhel7.x86_64.rpm                                                                           | 1.4 MB  00:00:01     
(3/3): postgresql13-server-13.10-1PGDG.rhel7.x86_64.rpm                                                                    | 5.4 MB  00:00:02     
--------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                             2.6 MB/s | 7.1 MB  00:00:02     
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Importing GPG key 0x442DF0F8:
 Userid     : "PostgreSQL RPM Building Project <pgsql-pkg-yum@postgresql.org>"
 Fingerprint: 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8
 Package    : pgdg-redhat-repo-42.0-32.noarch (installed)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Installing : postgresql13-libs-13.10-1PGDG.rhel7.x86_64                                                                                     1/3 
  Installing : postgresql13-13.10-1PGDG.rhel7.x86_64                                                                                          2/3 
  Installing : postgresql13-server-13.10-1PGDG.rhel7.x86_64                                                                                   3/3 
  Verifying  : postgresql13-server-13.10-1PGDG.rhel7.x86_64                                                                                   1/3 
  Verifying  : postgresql13-13.10-1PGDG.rhel7.x86_64                                                                                          2/3 
  Verifying  : postgresql13-libs-13.10-1PGDG.rhel7.x86_64                                                                                     3/3 

Installed:
  postgresql13-server.x86_64 0:13.10-1PGDG.rhel7                                                                                                  

Dependency Installed:
  postgresql13.x86_64 0:13.10-1PGDG.rhel7                               postgresql13-libs.x86_64 0:13.10-1PGDG.rhel7                              

Complete!

2.初始化数据库

初始化PostgreSQL数据库

[root@jeven ~]# postgresql-13-setup initdb
Initializing database ... OK

3.启动PostgreSQL数据库

启动PostgreSQL数据库,并设置开机自启。


[root@jeven ~]# systemctl enable postgresql-13
[root@jeven ~]# systemctl start postgresql-13
[root@jeven ~]# 

4.检查PostgreSQL数据库状态

检查当前PostgreSQL服务状态

[root@jeven ~]# systemctl status postgresql-13.service 
● postgresql-13.service - PostgreSQL 13 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-13.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2023-03-27 21:07:33 CST; 1min 34s ago
     Docs: https://www.postgresql.org/docs/13/static/
  Process: 13256 ExecStartPre=/usr/pgsql-13/bin/postgresql-13-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 Main PID: 13264 (postmaster)
    Tasks: 8
   Memory: 17.6M
   CGroup: /system.slice/postgresql-13.service
           ├─13264 /usr/pgsql-13/bin/postmaster -D /var/lib/pgsql/13/data/
           ├─13266 postgres: logger 
           ├─13268 postgres: checkpointer 
           ├─13269 postgres: background writer 
           ├─13270 postgres: walwriter 
           ├─13271 postgres: autovacuum launcher 
           ├─13272 postgres: stats collector 
           └─13273 postgres: logical replication launcher 

Mar 27 21:07:33 jeven systemd[1]: Starting PostgreSQL 13 database server...
Mar 27 21:07:33 jeven postmaster[13264]: 2023-03-27 21:07:33.325 CST [13264] LOG:  redirecting log output to logging collector process
Mar 27 21:07:33 jeven postmaster[13264]: 2023-03-27 21:07:33.325 CST [13264] HINT:  Future log output will appear in directory "log".
Mar 27 21:07:33 jeven systemd[1]: Started PostgreSQL 13 database server.

五、PostgreSQL的基本命令

1.查看PostgreSQL相关文件

检查PostgreSQL服务端的所有相关文件所在目录

rpm -ql postgresql13-server

在这里插入图片描述

检查PostgreSQL客户端的所有相关文件所在目录

rpm -ql postgresql13

在这里插入图片描述

2.PostgreSQL的相关命令

PostgreSQL的所有相关命令文件

[root@jeven ~]# /usr/pgsql-13/bin/
clusterdb                   pg_basebackup               pg_dumpall                  pg_test_timing              postmaster
createdb                    pgbench                     pg_isready                  pg_upgrade                  psql
createuser                  pg_checksums                pg_receivewal               pg_verifybackup             reindexdb
dropdb                      pg_config                   pg_resetwal                 pg_waldump                  vacuumdb
dropuser                    pg_controldata              pg_restore                  postgres                    
initdb                      pg_ctl                      pg_rewind                   postgresql-13-check-db-dir  
pg_archivecleanup           pg_dump                     pg_test_fsync               postgresql-13-setup 

六、修改用户密码

1.切换postgres用户

切换postgres用户

[root@jeven ~]# su - postgres
-bash-4.2$ 

2.登录PostgreSQL数据库

登录后,提示符变为 ‘postgres=#’

[root@jeven ~]# su - postgres
-bash-4.2$ psql -U postgres
psql (13.10)
Type "help" for help.

postgres=# 

3.修改PostgreSQL数据库用户密码

修改PostgreSQL数据库用户密码


postgres=# ALTER USER postgres WITH PASSWORD ‘postgres’ 
postgres-# 

七、配置PostgreSQL远程访问

1.配置远程访问

修改/var/lib/pgsql/13/data/postgresql.conf配置文件,开启远程访问。
删除localhost,改为监听所有,或者自己指定的服务器IP地址。

-bash-4.2$ grep listen /var/lib/pgsql/13/data/postgresql.conf
listen_addresses = '*'		# what IP address(es) to listen on;

修改/var/lib/pgsql/13/data/pg_hba.conf文件,新增以下两行:

host    all            all      127.0.0.1/32      ident
host    all            all      0.0.0.0/0  md5

2.重启PostgreSQL服务

重启PostgreSQL服务

 systemctl restart postgresql-13.service 

3.远程连接PostgreSQL数据库

使用psql命令远程连接PostgreSQL数据库

[root@jeven ~]# psql -h192.168.3.166  -Upostgres -W
Password: 
psql (13.10)
Type "help" for help.

postgres=# \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)

postgres=# 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/3904.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GPIO的八种模式分析

GPIO是general purpose input output,即通用输入输出端口&#xff0c;作用是负责外部器件的信息和控制外部器件工作。 GPIO有如下几个特点&#xff1a;1.不同型号的IO口数量不同&#xff1b;2&#xff0c;反转快速&#xff0c;每次翻转最快只需要两个时钟周期&#xff0c;以ST…

dubbo的SPI机制和服务暴露,引用原理

一、SPI引入&#xff1a;spi标准&#xff1a;1、需要在 classpath 下创建一个目录&#xff0c;该目录命名必须是&#xff1a;META-INF/service2、在该目录下创建一个 properties 文件&#xff0c;该文件需要满足以下几个条件 &#xff1a;2.1 文件名必须是扩展的接口的全路径名…

量子运算-比算子描述更广泛的一类刻画量子态在客观世界演化的数学工具

参考链接&#xff1a;1.1 量子运算 - 知乎 (zhihu.com)一个量子操作&#xff08;包括量子测量和量子信道&#xff09;指的是把一个密度矩阵变成另一个密度矩阵的变换&#xff0c;一般记为 背景演化算符是酉的。这里考虑考虑特殊的演化-测量。测量对应的算子是投影算子&#xff…

刘禹锡最经典诗文10首,每一首都是千古名作,读懂受益一生

他是唐代最乐观的诗人&#xff0c;是比他的好友乐天更乐天的人&#xff01;他与柳宗元并称“刘柳”&#xff0c;与韦应物、白居易合称“三杰”&#xff0c;并与白居易合称“刘白”。他是在唐代诗人中&#xff0c;出了名的豪放豁达的刘禹锡。白居易称他为“诗豪”。自“永贞革新…

Elasticsearch:理解 Master,Elections,Quorum 及 脑裂

集群中的每个节点都可以分配多个角色&#xff1a;master、data、ingest、ml&#xff08;机器学习&#xff09;等。 我们在当前讨论中感兴趣的角色之一是 master 角色。 在 Elasticsearch 的配置中&#xff0c;我们可以配置一个节点为 master 节点。master 角色的分配表明该节点…

【javaEE】阻塞队列、定时器、线程池

目录 &#x1f334;一、阻塞队列 1.概念 2.生产者消费者模型 3.阻塞队列的实现 &#x1f3f9;二、定时器 1.引出定时器 2.定时器的实现 &#x1f525;三、线程池 1.引出线程池 2.ThreadPoolExecutor 构造方法 3.标准数据库的4种拒绝策略【经典面试题】【重点掌握】 …

2020年第十一届C/C++ B组第一场蓝桥杯省赛真题

准备参加第十四届蓝桥杯&#xff0c;今天开始刷题目的第一天&#xff0c;下面是2020年第十一届C/C B组第一场蓝桥杯省赛真题&#xff0c;以下是我的做题目心得。跑步训练第一次写的代码失误点如下&#xff1a;第一个错误点是因为好久没有写代码&#xff0c;忘记判断对才能循环&…

【SCL】博图——先入先出排序法

使用博图SCL语言来实现先入先出排序 前言 使用SCL完成一个先入先出排序 具体要求&#xff1a;最先输入的一个数值&#xff0c;最先输出出来&#xff0c;下面的数自动向前填充&#xff1b; 注&#xff1a;这里可能有两种理解&#xff1a;一是第一个输入的第一个出来&#xff…

解析vue中的process.env

一、介绍 1、process process是 nodejs 下的一个全局变量&#xff0c;它存储着 nodejs 中进程有关的信息。 2、process.env env 是 environment 的简称&#xff0c;process.env属性返回一个包含用户环境的对象。 3、dotenv Dotenv 是一个零依赖的模块&#xff0c;它能将环境变…

蓝桥杯刷题冲刺 | 倒计时16天

作者&#xff1a;指针不指南吗 专栏&#xff1a;蓝桥杯倒计时冲刺 &#x1f43e;马上就要蓝桥杯了&#xff0c;最后的这几天尤为重要&#xff0c;不可懈怠哦&#x1f43e; 文章目录1.青蛙跳杯子1.青蛙跳杯子 题目 链接&#xff1a; 青蛙跳杯子 - 蓝桥云课 (lanqiao.cn) X 星球的…

用于人工智能研究的开源Python微电网模拟器pymgrid(入门篇)

pymgrid是一个开源Python库&#xff0c;用于模拟微型电网的三级控制&#xff0c;允许用户创建或自行选择的微电网。并可以使用自定义的算法或pymgrid中包含的控制算法之一来控制这些微电网&#xff08;基于规则的控制和模型预测控制&#xff09;。 pymgrid还提供了与OpenAI Gy…

初识冯诺依曼体系结构

目录 1.冯诺依曼体系结构 2.冯诺依曼体系的原理 3.数据流向 4.冯诺依曼体系的意义 1.冯诺依曼体系结构 我们常见的计算机&#xff0c;如笔记本。我们不常见的计算机&#xff0c;如服务器&#xff0c;大部分都遵守冯诺依曼体系。 &#xff08;1&#xff09;输入单元&#xff1a;…

JavaEE-多线程中wait和notify都有哪些区别?

更多内容请点击了解 本篇文章将详细讲述wait和notify的区别&#xff0c;请往下看 目录 更多内容请点击了解 文章目录 一、wait和notify概念 二、wait()方法详解 三、notify()方法详解 代码如下&#xff1a; 3.1notifyAll()详解 四、wait和sleep的对比 一、wait和notif…

Docker容器高级篇

文章目录一、Dockerfile文件1.dockerfile基础知识2.docker执行dockerfile的大致流程3.dockerfile常用保留字4.dockerfile构建镜像示例二、docker network1.docker net常用指令2.docker的网络模式三、docker-compose容器编排1.下载安装2.三个步骤3.compose常用命令4.不使用docke…

Java Web 实战 17 - 计算机网络之传输层协议(2)

大家好 , 这篇文章继续给大家讲解 TCP 协议当中的一些操作 , 比如 : 滑动窗口、流量控制、拥塞控制、延时应答、捎带应答、面向字节流这几个提升 TCP 效率的操作 . 我们还会给大家分析 TCP 连接出现异常的时候 , 该如何处理 . 最后会将 TCP 和 UDP 进行比较 上一篇文章的链接也…

【计组】RAM的深入理解

一、存储机理 RAM的实现逻辑有种&#xff0c;分别是触发器和电容。 SRAM&#xff08;Static&#xff09;DRAM&#xff08;Dynamic&#xff09;存储方式触发器电容破坏性读出否&#xff08;触发器具有稳态&#xff0c;能够锁住0或1两种状态&#xff09;是&#xff08;电容需要…

面试热点题:回溯算法 递增子序列与全排列 II

前言&#xff1a; 如果你一点也不了解什么叫做回溯算法&#xff0c;那么推荐你看看这一篇回溯入门&#xff0c;让你快速了解回溯算法的基本原理及框架 递增子序列 给你一个整数数组 nums &#xff0c;找出并返回所有该数组中不同的递增子序列&#xff0c;递增子序列中 至少有两…

K8S + GitLab + Jenkins自动化发布项目实践(二)

K8S GitLab Jenkins自动化发布项目实践&#xff08;二&#xff09;Jenkins容器化部署部署NFS PV存储Jenkins部署Jenkins初始化安装Jenkins插件Jenkins主从架构配置Kubernetes插件配置安装nerdctl工具自定义Jenkins Slave镜像测试主从架构是否正常前置工作&#xff1a;已部署5…

Linux中滴计划任务

计划任务计划任务计划任务分类at命令load averagecrontab命令配置文件通常包含三个部分cron服务配置文件cron服务的日志文件时间数值的特殊表示方法应用实例案例anacron服务计划任务 计划任务&#xff08;Cron Job&#xff09;是指在预定的时间自动执行一些指定的任务或脚本。…

【蓝桥杯专题】 树状数组(C++ | 洛谷 | acwing | 蓝桥)

菜狗现在才开始备战蓝桥杯QAQ 文章目录【蓝桥杯专题】 &#xff08;C | 洛谷 | acwing | 蓝桥&#xff09;什么是线段数组??1264. 动态求连续区间和数星星线段树AcWing 1270. 数列区间最大值PPPPPPP【蓝桥杯专题】 &#xff08;C | 洛谷 | acwing | 蓝桥&#xff09; 什么是…