【PostgreSQL】基于CentOS系统安装PostgreSQL数据库

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 【PostgreSQL】基于CentOS系统安装PostgreSQL数据库

二、PostgreSQL介绍

PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。(——PostgreSQL_百度百科)


三、PostgreSQL安装

本实验基于CentOS 7.9系统进行演示操作

[root@postgresql ~]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)


安装准备

修改主机名
# hostnamectl set-hostname prostgresql
关闭防火墙
# systemctl stop firewalld
# systemctl disable firewalld
关闭SELinux安全模式
# setenforce 0
# getenforce 
配置网络信息并测试连通性
vim /etc/sysconfig/network-scripts/ifcfg-ens32
主要修改如下参数信息即可。
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.200.25
PREFIX=24
GATEWAY=192.168.200.1
DNS1=192.168.200.1
按:wq保存退出。
重启网卡
# systemctl restart network
# ping bing.com
配置阿里云CentOS YUM源,加快镜像访问下载
参考链接:https://blog.csdn.net/qq_45392321/article/details/121450443
# yum clean all
# yum makecache
# yum repolist
升级系统🆙
# yum update
检查postgresql是否安装
# rpm -qa | grep postgre
检查PostgreSQL 安装位置
# rpm -qal | grep postgres
新增postgres用户组
# groupadd postgres
新增postgres用户并且设置这个postgres用户属于创建的postgres用户组
# useradd -g postgres postgres
修改postgres用户密码
[root@postgresql ~]# passwd postgres
Changing password for user postgres.
New password: 
BAD PASSWORD: The password is a palindrome
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@postgresql ~]# 
重启系统
reboot

1、查询并安装postgresql-server

yum list | grep postgresql-server
yum install -y postgresql-server.x86_64

db0d43e3bca75b752c480a5f2c4ff4de.png

2、初始化postgresql-server数据库

service postgresql initdb

# service postgresql initdb
Hint: the preferred way to do this is now "postgresql-setup initdb"
Initializing database ... OK

3、启动postgresql服务并设置开机自启动

systemctl start postgresql
systemctl enable postgresql

4、查看postgresql服务状态

systemctl status postgresql

5、查看服务进程信息

[root@postgresql ~]# ps -ef | grep postgres
postgres   1405      1  0 16:05 ?        00:00:00 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432
postgres   1406   1405  0 16:05 ?        00:00:00 postgres: logger process   
postgres   1408   1405  0 16:05 ?        00:00:00 postgres: checkpointer process   
postgres   1409   1405  0 16:05 ?        00:00:00 postgres: writer process   
postgres   1410   1405  0 16:05 ?        00:00:00 postgres: wal writer process   
postgres   1411   1405  0 16:05 ?        00:00:00 postgres: autovacuum launcher process   
postgres   1412   1405  0 16:05 ?        00:00:00 postgres: stats collector process   
root       1440   1131  0 16:07 pts/0    00:00:00 grep --color=auto postgres
[root@postgresql ~]# 

6、查看postgresql服务端口是否开启

# ss -tunpl | grep postgres
tcp    LISTEN     0      128    127.0.0.1:5432                  *:*                   users:(("postgres",pid=1349,fd=4))
tcp    LISTEN     0      128       [::1]:5432               [::]:*                   users:(("postgres",pid=1349,fd=3))
[root@postgresql ~]# 
# netstat -tunpl | grep 5432
tcp    0   0 127.0.0.1:5432    0.0.0.0:*    LISTEN      1349/postgres 
tcp6   0   0 ::1:5432          :::*         LISTEN      1349/postgres

四、测试连接

1、切换postgres用户

[root@postgresql ~]# su postgres
[postgres@postgresql root]$

2、连接数据库

[root@postgresql ~]# su postgres
[postgres@postgresql root]$ psql -U postgres
could not change directory to "/root"
psql (9.2.24)
Type "help" for help.
postgres=# 
# 使用 \l 用于查看已经存在的数据库:
postgres=# \l
                             List of databases
   Name    |  Owner   | Encoding  | Collate | Ctype |   Access privileges   
-----------+----------+-----------+---------+-------+-----------------------
 postgres  | postgres | SQL_ASCII | C       | C     | 
 template0 | postgres | SQL_ASCII | C       | C     | =c/postgres          +
           |          |           |         |       | postgres=CTc/postgres
 template1 | postgres | SQL_ASCII | C       | C     | =c/postgres          +
           |          |           |         |       | postgres=CTc/postgres
(3 rows)
postgres=# 
# 进入命令行工具,可以使用 \help 来查看各个命令的语法
postgres-# \help


3、创建数据库

# 创建一个 runoobdb 的数据库
postgres=# CREATE DATABASE xybdiy;
CREATE DATABASE
postgres=# 
# 使用 \c + 数据库名 来进入数据库
postgres=# \c xybdiy
You are now connected to database "xybdiy" as user "postgres".
xybdiy=# 

4、创建表格

# 创建了一个表,表名为 COMPANY 表格,主键为 ID,NOT NULL 表示字段不允许包含 NULL 值
xybdiy=# CREATE TABLE COMPANY(
xybdiy(#    ID INT PRIMARY KEY     NOT NULL,
xybdiy(#    NAME           TEXT    NOT NULL,
xybdiy(#    AGE            INT     NOT NULL,
xybdiy(#    ADDRESS        CHAR(50),
xybdiy(#    SALARY         REAL
xybdiy(# );
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "company_pkey" for table "company"
CREATE TABLE
# 使用 \d 命令来查看表格是否创建成功
xybdiy=# \d
          List of relations
 Schema |  Name   | Type  |  Owner   
--------+---------+-------+----------
 public | company | table | postgres
(1 row)
xybdiy=# CREATE TABLE DEPARTMENT(
xybdiy(#    ID INT PRIMARY KEY      NOT NULL,
xybdiy(#    DEPT           CHAR(50) NOT NULL,
xybdiy(#    EMP_ID         INT      NOT NULL
xybdiy(# );
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "department_pkey" for table "department"
CREATE TABLE
xybdiy=# \d
           List of relations
 Schema |    Name    | Type  |  Owner   
--------+------------+-------+----------
 public | company    | table | postgres
 public | department | table | postgres
(2 rows)
xybdiy=# 

五、修改配置文件

1、修改postgresql的配置文件

# vim /var/lib/pgsql/data/postgresql.conf
# 修改监听IP
listen_addresses = '*'
# 打开日志采集器
logging_collector = on
# 设置日志目录
log_directory = 'pg_log'


2、修改 pg_hba.conf 服务连接配置文件

# vim /var/lib/pgsql/data/pg_hba.conf
 77 # TYPE  DATABASE   USER      ADDRESS                 METHOD
 78 
 79 # "local" is for Unix domain socket connections only
 80 local   all        all                               trust
 81 # IPv4 local connections:
 82 host    all        all          127.0.0.1/32         trust
 83 host    all        all          0.0.0.0/0            trust
 84 # IPv6 local connections:
 85 host    all        all          ::1/128               md5

3、重启postgresql服务

# systemctl restart postgresql


五、测试远程连接

测试连接

a2a6db092041d14ec47c43910bb53d75.png

测试成功后,连接

b1b675f0c838ee810724da0b9c37e73b.png

连接成功

cdf1302dbf0fbb0c3e63b43e086b5a13.png

7453fbfdeddcc8b5f03cedaeb07f8de5.png

至此,安装PostgreSQL数据库完成。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
4月前
|
SQL 关系型数据库 Linux
搭建 PostgreSQL 流复制主从指南(适用于 CentOS 7.x)
搭建 PostgreSQL 流复制主从指南(适用于 CentOS 7.x)
136 7
|
4月前
|
关系型数据库 MySQL 数据库
【Mac os系统】安装MySQL数据库
本文详细介绍了在Mac OS系统上安装MySQL数据库的步骤,包括下载、安装、配置环境变量、启动服务、授权设置以及解决常见问题,并提供了一些常用的MySQL命令。
260 0
【Mac os系统】安装MySQL数据库
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
96 3
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
73 2
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
127 2
|
2月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置服务等,并与使用 RPM 包安装进行了对比,帮助读者根据需求选择合适的方法。编译源码安装虽然复杂,但提供了更高的定制性和灵活性。
276 2
|
2月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤
【10月更文挑战第7天】本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据自身需求选择合适的方法。
61 3
|
2月前
|
安全 Linux 数据库连接
CentOS 7环境下DM8数据库的安装与配置
【10月更文挑战第16天】本文介绍了在 CentOS 7 环境下安装与配置达梦数据库(DM8)的详细步骤,包括安装前准备、创建安装用户、上传安装文件、解压并运行安装程序、初始化数据库实例、配置环境变量、启动数据库服务、配置数据库连接和参数、备份与恢复、以及安装后的安全设置、性能优化和定期维护等内容。通过这些步骤,可以顺利完成 DM8 的安装与配置。
313 0
|
4月前
|
SQL 关系型数据库 Linux
在CentOS 6上安装和使用PostgreSQL的方法
在CentOS 6上安装和使用PostgreSQL的方法
53 2
|
4月前
|
关系型数据库 MySQL Linux
【一键解锁神秘力量!】CentOS 7 通过编译源码方式安装 MySQL 数据库 —— 从零到英雄的数据库安装实战秘籍!
【8月更文挑战第9天】随着业务增长,对数据库的需求日益提高。在 CentOS 7 中,通过编译源码安装 MySQL 可提供更高定制性和灵活性。本文详细介绍从准备环境、下载源码、配置编译参数到安装 MySQL 的全过程,并对比 RPM 包安装方法,帮助读者根据需求选择合适方案。实践时需注意备份数据、选择合适版本、确保安全性和调优性能等要点。
230 1