PostgreSQL15.x安装的详细教程

 更新时间:2024年09月18日 09:44:42   作者:徐州蔡徐坤  
PostgreSQL 是一个功能强大的开源关系型数据库系统,基于 C 语言实现,采用 PostgreSQL 许可证,这是一种自由软件许可证,允许用户自由使用、修改和分发源代码,所以本文将给大家介绍PostgreSQL15.x安装的详细教程,需要的朋友可以参考下

一、介绍

PostgreSQL 是一个功能强大的开源关系型数据库系统,基于 C 语言实现,采用 PostgreSQL 许可证,这是一种自由软件许可证,允许用户自由使用、修改和分发源代码,同时支持商业用途而不设强制限制。这使得 PostgreSQL 成为广受欢迎的开源数据库解决方案。PostgreSQL 支持跨版本升级,过程通常平稳。尽管国内市场 MySQL 仍占主导地位,但许多国产数据库(如华为的 GaussDB 和腾讯的 Tbase)及云服务提供商都广泛支持 PostgreSQL。此外,pgloader 等数据迁移工具可以帮助用户高效地将数据从 MySQL、SQL Server 和 Oracle 迁移到 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.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# 安装PostgreSQL
sudo yum install -y postgresql15-server
# 初始化数据库
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
# 设置开机启动PostgreSQL
sudo systemctl enable postgresql-15
# 启动PostgreSQL
sudo systemctl start postgresql-15

image-20240912142226939

如果报错:

错误:软件包:postgresql15-15.8-1PGDG.rhel7.x86_64 (pgdg15)
          需要:libzstd >= 1.4.0
错误:软件包:postgresql15-15.8-1PGDG.rhel7.x86_64 (pgdg15)
          需要:libzstd.so.1()(64bit)
错误:软件包: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*

执行完成后,重新安装postgresql15

2.2 登录验证

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

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

image-20240912142756266

三、配置

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

主要操作postgresql.conf和pg_hba.conf

image-20240912143222499

3.1 远程连接配置

配置postgresql.conf

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

修改/var/lib/pgsql/12/data/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 postgresql-15

navicat连接测试

image-20240912150447918

3.2 数据库的日志配置

配置postgresql.conf

image-20240912151054624

# 代表日志是开启的。
logging_collector = on
# 日志存放的路径,默认放到当前目录下的log里
log_directory = 'log'
# 日志的文件名,默认是postgresql为前缀,%a表示把星期作为后缀
log_filename = '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 无法提供所需的变更数据流

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

image-20240912151729978

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

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

3.4 创建用户并授权

创建用户:

CREATE USER newuser WITH PASSWORD 'password';

授予数据库全部权限:

GRANT ALL PRIVILEGES ON DATABASE mydatabase TO newuser;

授予表、序列和函数权限(在连接到 mydatabase 后):

\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;

确保权限应用到新对象:

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;

以上就是PostgreSQL15.x安装的详细教程的详细内容,更多关于PostgreSQL15.x安装的资料请关注脚本之家其它相关文章!

相关文章

  • postgresql处理空值NULL与替换的问题解决办法

    postgresql处理空值NULL与替换的问题解决办法

    由于在不同的语言中对空值的处理方式不同,因此常常会对空值产生一些混淆,下面这篇文章主要给大家介绍了关于postgresql处理空值NULL与替换的问题解决办法,需要的朋友可以参考下
    2024-02-02
  • PostgreSQL+GeoHash地图点位聚合实现代码

    PostgreSQL+GeoHash地图点位聚合实现代码

    这篇文章主要介绍了PostgreSQL+GeoHash地图点位聚合,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • PostgreSQL入门简介

    PostgreSQL入门简介

    PostgreSQL是一个免费的对象-关系型数据库服务器(ORDBMS),遵循灵活的开源协议BSD。这篇文章主要介绍了PostgreSQL入门简介,需要的朋友可以参考下
    2020-12-12
  • PostgreSQL教程(十九):SQL语言函数

    PostgreSQL教程(十九):SQL语言函数

    这篇文章主要介绍了PostgreSQL教程(十九):SQL语言函数,本文讲解了SQL语言函数基本概念、基本类型、复合类型、带输出参数的函数、返回结果作为表数据源等内容,需要的朋友可以参考下
    2015-05-05
  • 基于PostgreSQL和mysql数据类型对比兼容

    基于PostgreSQL和mysql数据类型对比兼容

    这篇文章主要介绍了基于PostgreSQL和mysql数据类型对比兼容,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • postgresql 中的序列nextval详解

    postgresql 中的序列nextval详解

    这篇文章主要介绍了postgresql 中的序列nextval详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • PostgreSQL流复制参数max_wal_senders的用法说明

    PostgreSQL流复制参数max_wal_senders的用法说明

    这篇文章主要介绍了PostgreSQL流复制参数max_wal_senders的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • PostgreSQL忘记postgres账号密码的解决方法

    PostgreSQL忘记postgres账号密码的解决方法

    这篇文章主要介绍了PostgreSQL忘记postgres账号的密码的解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Postgresql psql文件执行与批处理多个sql文件操作

    Postgresql psql文件执行与批处理多个sql文件操作

    这篇文章主要介绍了Postgresql psql文件执行与批处理多个sql文件操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • postgresql 实现sql多行语句合并一行

    postgresql 实现sql多行语句合并一行

    这篇文章主要介绍了postgresql 实现sql多行语句合并一行的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12

最新评论