PostgreSQL15.x安装教程

news/2024/11/15 0:52:58/

一、介绍

PostgreSQL 是一个功能强大的开源关系型数据库系统,基于 C 语言实现,采用 PostgreSQL 许可证,这是一种自由软件许可证,允许用户自由使用、修改和分发源代码,同时支持商业用途而不设强制限制。这使得 PostgreSQL 成为广受欢迎的开源数据库解决方案。PostgreSQL 支持跨版本升级,过程通常平稳。尽管国内市场 MySQL 仍占主导地位,但许多国产数据库(如华为的 GaussDB 和腾讯的 Tbase)及云服务提供商都广泛支持 PostgreSQL。此外,pgloader 等数据迁移工具可以帮助用户高效地将数据从 MySQL、SQL Server 和 Oracle 迁移到 PostgreSQL。

官方资源

  • PostgreSQL 官方网站:PostgreSQL
  • 国内社区:PostgreSQL 国内社区

二、安装

操作系统:centos7,数据库版本:15.8

2.1 下载并执行安装

打开官方地址 PostgreSQL: Linux downloads (Red Hat family):根据服务器版本选择:

image-20240912135407752

按照上图Copy, paste and run the relevant parts of the setup script:里的命令执行:下载PpstgreSQL的rpm包

# 下载PostgreSQL
sudo yum install -y https://download.sql>postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# 安装PostgreSQL
sudo yum install -y sql>postgresql15-server
# 初始化数据库
sudo /usr/pgsql-15/bin/sql>postgresql-15-setup initdb
# 设置开机启动PostgreSQL
sudo systemctl enable sql>postgresql-15
# 启动PostgreSQL
sudo systemctl start sql>postgresql-15

image-20240912142226939


如果报错:

错误:软件包:sql>postgresql15-15.8-1PGDG.rhel7.x86_64 (pgdg15)需要:libzstd >= 1.4.0
错误:软件包:sql>postgresql15-15.8-1PGDG.rhel7.x86_64 (pgdg15)需要:libzstd.so.1()(64bit)
错误:软件包:sql>postgresql15-server-15.8-1PGDG.rhel7.x86_64 (pgdg15)需要:libzstd.so.1()(64bit)

解决方案:

wget https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/l/libzstd-1.5.5-1.el7.x86_64.rpm
wget https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/l/llvm5.0-5.0.1-7.el7.x86_64.rpm
wget https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/l/llvm5.0-devel-5.0.1-7.el7.x86_64.rpm
wget https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/l/llvm5.0-libs-5.0.1-7.el7.x86_64.rpm

执行:

yum install -y ./libzstd-1.5.5-1.el7.x86_64.rpm
yum install -y centos-release-scl-rh llvm5*

执行完成后,重新安装sql>postgresql15


2.2 登录验证

PostgreSQ默认创建一个无密码用户:postgres

sql"># 以超级用户身份登录L数据库
sudo -u postgres psql
# 查看有哪些库
\l
# 退出PostgreSQL
\q
# 修改密码,如果需要数据库连接工具连接,必须设置密码
ALTER USER postgres WITH PASSWORD '新密码';

image-20240912142756266

三、配置

配置目录: /var/lib/pgsql/15/data配置的核心文件都属于postgres用户,修改时需要切换为postgres用户

主要操作sql>postgresql.conf和pg_hba.conf

image-20240912143222499

3.1 远程连接配置

sql>postgresqlconf_98">配置sql>postgresql.conf

sql>postgresql.conf是PostgreSQL的主要配置文件,它包含了许多数据库服务器的全局设置选项。通过修改这个文件,您可以配置数据库服务器的各种参数,如监听地址、端口号、最大连接数、日志记录等。这个文件的修改通常需要重启数据库服务器才能生效。

修改/var/lib/pgsql/12/data/sql>postgresql.conf配置文件,默认情况下,PostgreSQL只允许localhost连接,直接配置为*即可

image-20240912145248699

配置pg_hba.conf

pg_hba.conf是PostgreSQL的身份验证配置文件,它定义了哪些客户端可以连接到数据库服务器以及如何进行身份验证。通过修改这个文件,您可以控制访问数据库的权限,配置不同用户的身份验证方法,以及定义访问控制规则。修改pg_hba.conf文件后,通常需要重新加载配置或重启数据库服务器才能使更改生效。

修改/var/lib/pgsql/12/data/pg_hba.conf配置文件,支持远程用户访问

image-20240912145748487

模板参数说明:

  • type:local代表本地连接,host代表可以指定连接的ADDRESS
  • database:数据库名,如果写all,代表所有库都可以连接
  • user:连接的用户,可以写all,代表所有用户
  • address:代表那些IP地址可以连接
  • method:加密方式,一般直接md5

重启PostgreSQL

修改完上面的两个配置文件,都需要重启下:

systemctl restart sql>postgresql-15

navicat连接测试

image-20240912150447918

3.2 数据库的日志配置

配置sql>postgresql.conf

image-20240912151054624

# 代表日志是开启的。
logging_collector = on
# 日志存放的路径,默认放到当前目录下的log里
log_directory = 'log'
# 日志的文件名,默认是sql>postgresql为前缀,%a表示把星期作为后缀
log_filename = 'sql>postgresql-%a.log'
# 日志文件会被覆盖
log_truncate_on_rotation = on
# 一天一个日志文件
log_rotation_age = 1d
# 日志文件,没有大小限制
log_rotation_size = 0

3.3 设置wal_level级别(选用)

此参数是为了Flink 能够捕捉数据更改并将其同步到 MySQL

wal_level 参数控制 PostgreSQL 生成的 WAL 信息的详细程度。设置为 logical 时,PostgreSQL 会记录足够的信息来支持逻辑复制,否则PostgreSQL 无法提供所需的变更数据流

修改sql>postgresql.conf,增加wal_level = logical,然后执行systemctl restart sql>postgresql-15重启PostgreSQL

image-20240912151729978

wal_level 的设置会影响 PostgreSQL 的日志记录级别,具体分为三种:

  1. minimal:记录最基本的 WAL 信息,仅用于崩溃恢复,无法支持逻辑复制
  2. replica:记录额外的 WAL 信息,支持物理复制,但仍不足以进行逻辑复制
  3. logical:记录全部 WAL 信息,包括逻辑复制所需的数据变更,适用于 Flink 和其他逻辑复制工具

3.4 创建用户并授权

  1. 创建用户:

    sql">CREATE USER newuser WITH PASSWORD 'password';
    
  2. 授予数据库全部权限:

    sql">GRANT ALL PRIVILEGES ON DATABASE mydatabase TO newuser;
    
  3. 授予表、序列和函数权限(在连接到 mydatabase 后):

    sql">\c mydatabase
    GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO newuser;
    GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO newuser;
    GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO newuser;
    
  4. 确保权限应用到新对象:

    sql">ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO newuser;
    ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO newuser;
    ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON FUNCTIONS TO newuser;
    

http://www.ppmy.cn/news/1528065.html

相关文章

SWC(Speedy Web Compiler)

概述 SWC 由 Rust 编写, 既可用于编译,也可用于打包。 对于编译,它使用现代 JavaScript 功能获取 JavaScript / TypeScript 文件并输出所有主流浏览器支持的有效代码。 SWC在单线程上比 Babel 快 20 倍,在四核上快 70 倍。 简…

Nginx引发的惨案

尘封三年的项目突然重新启动,当初的研发人员也早已不见踪影,留给我的只是一个不能访问的页面。 既然当初的项目能正常访问,说明代码是正常的,如今访问不了了,只可能是部署出现了问题。 我看了一下Apollo配置中心配置的注册中心的地址,登录到eureka的管理界面,发现相关…

IM项目-----语音识别子服务

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、搭建思想二、服务器搭建1.继承speechService类,重写业务代码2.编写语音识别服务器类3.建造者类编写 三.测试 前言 语音转换子服务,用于调用语音…

FC优化配置

1.集群扩容CNA时打开bmc 2.给rhel7虚拟机安装tools-需要重启虚拟机 3.FC上创建集群 资源池右击创建集群(物理机大于10台,分业务类型创建集群) (解决集群内主机挂了,动态调整) (解决集群内个别…

使用集成学习对不同的机器学习方法进行集成

数据入口:数据人才的现场调研 - Heywhale.com 本数据集中有 43 行,19 列,数据集包含如下字段: 首先读取数据: import pandas as pd# 读取Excel文件 data pd.read_excel(数据人才的现场调研.xls)可以输出每一列含有…

国科云域名解析课堂:一个域名可以解析到多个IP地址吗?

在互联网世界中,域名和IP地址是连接用户与网络资源的重要桥梁。每一个简单易记的域名背后都对应着复杂的IP地址,二者通过DNS解析实现对应关系,从而让人们可以通过域名而非IP地址来访问网络资源。那么,域名和IP地址是一一对应的关系…

qt-creator-10.0.2之后版本的jom.exe构建和编译速度慢下来了

1、Qt的IDE一直在升级,qt-creator的新版本下载地址 https://download.qt.io/official_releases/qtcreator/ 2、本人一直用的是qt-creator-10.0.2版本,官网历史仓库可以下载安装包qt-creator-opensource-windows-x86_64-10.0.2.exe https://download.qt…

leetcode 2576.求出最多标记下标

2576.求出最多标记下标 题意: 解析: 数组长为 n n n,因为一次标记两个,所以数组中最多有 ⌊ n 2 ⌋ \lfloor \frac{n}{2}\rfloor ⌊2n​⌋ 对标记。 贪心的考虑,一个数 x 一定优先与满足 y ≥ 2 x y \ge 2x y≥2…