Centos7安装PostgreSQL 14

环境:

Centos7安装PostgreSQL_14版本数据库;

打开官方网站:PostgreSQL: Linux downloads (Red Hat family)

一、 版本选择

复制、粘贴并运行如下脚本:

二、安装步骤

这些命令是在 CentOS 7.x 系统上安装和配置 PostgreSQL 14 的步骤:

①这个命令将下载并安装 PostgreSQL 官方的 YUM 存储库,以便从中获取 PostgreSQL 相关的软件包。

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

 

② 这个命令用于安装 PostgreSQL 14 服务器软件包。它会自动解决依赖关系并安装必要的组件。

sudo yum install -y postgresql14-server

③这个命令将初始化 PostgreSQL 14 数据库集群。它会创建数据库和相关的文件结构,并设置默认的用户和权限等信息。

sudo /usr/pgsql-14/bin/postgresql-14-setup initdb

 

④这个命令将设置 PostgreSQL 14 在系统启动时自动启动。这样,在系统重启后,PostgreSQL 14 将自动启动。

sudo systemctl enable postgresql-14

⑤这个命令将启动 PostgreSQL 14 服务器。你可以使用这个命令来手动启动 PostgreSQL 14,或者使用其他相应的命令(如 stoprestart)来控制 PostgreSQL 14 服务器的运行状态。 

sudo systemctl start postgresql-14

⑥验证 PostgreSQL 14 是否成功安装和运行,这个命令会显示 PostgreSQL 14 服务器的状态信息。如果服务器正在运行,你将看到类似 "active (running)" 的输出。

sudo systemctl status postgresql-14

提示:

在虚拟机的 CentOS 7 中,可以使用以下方法将命令从主机系统粘贴到虚拟机中:

  • 1. 使用终端工具:打开虚拟机中的终端(如 GNOME 终端、Konsole 等),右键单击并选择 "Paste" 或按下 `Ctrl+Shift+V` 键盘快捷键来粘贴命令。
  • 2. 使用 SSH 连接:如果你是通过 SSH 连接到虚拟机,你可以在 SSH 客户端中直接使用命令行复制和粘贴的功能。例如,使用 PuTTY 或 OpenSSH 连接到虚拟机,在 SSH 客户端的窗口中,右键单击即可粘贴命令。
  • 3. 使用共享剪贴板:某些虚拟化软件(如 VirtualBox、VMware)提供了共享剪贴板功能,允许你在主机和虚拟机之间共享剪贴板内容。确保在虚拟化软件的设置中启用了此功能,并使用相应的快捷键将命令从主机粘贴到虚拟机中。

无论选择哪种方法,请确保在粘贴命令之前,终端处于准备接收输入的状态,例如等待命令提示符。这样,粘贴的命令才能正确执行。

请记住,在虚拟机中运行命令时要谨慎,确保你理解命令的作用及其对系统的影响。

同时也可以使用 Xshell 连接到 CentOS 7 的虚拟机,并在其中安装和配置 PostgreSQL 14。

三、切换用户

切换到postgres用户

su - postgres

-bash-4.2$ psql这个命令是用于启动 PostgreSQL 的交互式命令行工具,可以与 PostgreSQL 数据库进行交互和执行 SQL 查询。

输入 psql 

-bash-4.2$ psql

正常情况下,当运行 psql 命令时,它会连接到本地默认的 PostgreSQL 服务器,并进入一个新的交互式会话。 如果你已经成功安装和配置了 PostgreSQL,并且正在使用默认的设置,那么你应该能够看到如下所示的输出: 

 

在提示符 postgres=# 下,可以输入 SQL 命令、执行查询和管理数据库等操作。 

修改系统用户密码:

ALTER USER postgres WITH PASSWORD 'postgres';

如果要从 `psql` 终端退出,有几种方法可以尝试:

1. 使用键盘组合键:按下 `Ctrl + D` 或输入 `\q` 然后按下回车键。这将关闭 `psql` 终端并退出到原始命令行提示符。

2. 使用 SQL 命令:在 `psql` 终端中,输入 `\q` 并按下回车键即可退出。

3. 使用系统终端命令:如果你发现无法使用 `psql` 终端的键盘组合键或命令,可以尝试以下操作:

① - 按下 `Ctrl + C` 中断当前操作(如果有)。 

② - 输入 `\!` 并按下回车键,以使 `psql` 终端进入外壳模式。 

③- 在外壳模式下,输入 `exit` 或 `logout` 并按下回车键来退出 `psql` 终端。

④- 如果以上方法仍然不起作用,可以直接关闭终端窗口或使用操作系统提供的其他方法来结束 `psql` 终端。

四、修改配置

要修改配置文件,需要以具有足够权限的用户身份执行操作。在 CentOS 7 上,默认情况下,PostgreSQL 数据库的数据目录的所有者和组都是 postgres 用户。因此,需要使用 root 或具有适当权限的用户登录到系统,并以 postgres 用户的身份来编辑 postgresql.conf 文件。

4.1.修改postgresql.conf

`postgresql.conf` 是 PostgreSQL 数据库的主要配置文件,其中包含许多不同的配置选项。以下是一些常见的 `postgresql.conf` 配置选项及其功能的示例:

  • 1. `listen_addresses`:指定 PostgreSQL 服务器监听的 IP 地址。默认情况下,它设置为 `'localhost'`,仅允许本地连接。你可以将其修改为适当的 IP 地址以允许远程连接。
  • 2. `port`:指定 PostgreSQL 服务器监听的端口号。默认值为 `5432`,通常无需更改。如果需要使用其他端口,请在此处进行修改。
  • 3. `max_connections`:指定 PostgreSQL 允许的最大并发连接数。默认值为 `100`。根据系统资源和需求,你可以增加或减少此值。
  • 4. `shared_buffers`:指定用于缓存数据页的共享内存大小。默认值取决于系统,但通常为 `128MB`。根据系统资源和工作负载,可以调整此值以提高性能。
  • 5. `work_mem`:指定每个排序操作或哈希表的内存量。默认值为 `4MB`。根据查询的复杂性和系统资源,你可以增加或减少此值。
  • 6. `effective_cache_size`:指定 PostgreSQL 估计系统可用的磁盘缓存大小。默认值为空,表示自动检测。你可以手动设置此值以更好地优化查询性能。
  • 7. `log_timezone` 和 `timezone`:分别指定日志记录时使用的时区和数据库服务器的时区。
  • 8. `logging_collector`:启用或禁用日志收集器。当启用时,PostgreSQL 将日志信息写入到日志文件中,便于故障排除和监视。

这里只是 `postgresql.conf` 中的一小部分配置选项示例。该文件还包含其他许多选项,用于配置各种数据库行为、性能参数、安全性选项等。

注意:

对于任何更改,你都应该谨慎,并确保了解其影响和可能的后果。在修改 `postgresql.conf` 之前,建议先备份原始配置文件,并参考 PostgreSQL 的官方文档以获取更详细的说明和指导。

4.1.1操作步骤 

①以 root 用户登录到虚拟机或系统中。

②切换到 postgres 用户:运行以下命令:

su - postgres

③进入 PostgreSQL 数据目录:运行以下命令: 

cd /var/lib/pgsql/14/data/

④使用 vim 编辑器打开 postgresql.conf 文件:运行以下命令: 

vim postgresql.conf

⑤在 Vim 编辑器中,按下 i 进入插入模式,对文件进行修改。

⑥完成修改后,按下 Esc 键退出插入模式。

⑦输入 :wq 并按下回车键保存修改并退出 Vim 编辑器。

通过以上步骤,你将使用 postgres 用户的身份编辑 postgresql.conf 文件,并确保保存了你的修改。请注意,这是一种常见的方法,但如果你的设置和权限不同,可能会有所变化。根据你的环境和配置,你可能需要相应地调整上述步骤。

提示:

如果在你的系统上未找到 vim 命令,可能是因为你的系统中没有安装 Vim 编辑器。在 CentOS 7 上,默认情况下,vim 命令未预装。 

假如你的vim 命令未安装,可以尝试以下方法来编辑 postgresql.conf 文件:

①使用其他文本编辑器:

尝试使用其他可用的文本编辑器,如 nanovi。这些编辑器通常在大多数 Linux 发行版中都预装了。你可以尝试运行以下命令: 

nano /var/lib/pgsql/14/data/postgresql.conf
或
vi /var/lib/pgsql/14/data/postgresql.conf

这样就可以 nanovi 编辑器打开 postgresql.conf 文件。 

②安装 Vim 编辑器:

如果你希望使用 Vim 编辑器,你可以尝试安装它。在 CentOS 7 上,你可以使用以下命令进行安装:

sudo yum install vim-enhanced

 

最后安装完成: 

安装完成后,你可以再次尝试使用 vim 命令打开 postgresql.conf 文件。 

开启远程访问,将listen_address 修改为 * ,端口号可改可不改:

将 PostgreSQL 的 `listen_address` 配置修改为 `*` 意味着服务器将监听所有可用的网络接口(IP 地址)。这样配置可以使 PostgreSQL 服务器对来自任何网络接口的连接请求进行处理。

通常情况下,PostgreSQL 的 `listen_address` 默认设置为 `localhost` 或 `127.0.0.1`,只允许本地连接。这是出于安全性考虑,以防止未经授权的远程连接。但如果你希望从外部网络连接到 PostgreSQL 服务器,就需要将 `listen_address` 修改为 `*`,以允许任意 IP 地址的连接请求。

注意:

将 `listen_address` 设置为 `*` 可能会增加一些安全风险,因为它打开了服务器对所有网络接口的监听。建议仅在必要时才采取此操作,并确保采取适当的安全措施,例如使用防火墙、限制访问和强密码等。

在更改 `listen_address` 配置之前,请务必评估潜在的安全影响,并确保已经实施了适当的安全措施来保护 PostgreSQL 服务器和数据。

 如果你在编辑 postgresql.conf 文件时找不到 listen_address 配置选项,这可能是因为实际配置文件中没有这个选项或该选项位于其他部分。

在 PostgreSQL 的默认安装中,listen_addressespostgresql.conf 中的一个常见配置选项,用于指定服务器监听的 IP 地址。但并非所有的 postgresql.conf 文件都会包含此选项。

要添加或修改 listen_addresses 选项,请按照以下步骤进行操作:

①打开 postgresql.conf 文件:

vim postgresql.conf

②在 Vim 编辑器中搜索 listen_addresses按下 / 键然后输入 listen_addresses 进行搜索

③如果找到了 listen_addresses 配置选项,请确保其前面没有被注释掉(没有以 # 开头)。如果被注释掉了,请将注释符号 # 删除,并在需要的地方设置适当的 IP 地址。

④如果未找到 listen_addresses 配置选项,你可以手动添加它。在文件的末尾添加以下行:

listen_addresses = 'your_ip_address'

 将 'your_ip_address' 替换为你想要 PostgreSQL 服务器监听的实际 IP 地址。

 ⑤保存文件并退出 Vim 编辑器:在命令模式下按下 Esc 键,然后输入 :wq 并按下回车键。

4.2.修改pg_hba.conf 

在这个文件中,你可以配置 PostgreSQL 服务器的客户端认证规则。当你运行如下命令后,Vim 编辑器将打开 pg_hba.conf 文件,并显示其内容供你编辑。你可以使用 Vim 的编辑命令对文件进行修改,例如添加或更改认证规则、控制客户端访问权限等。

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

在文件末尾增加如下配置:

host    all             all             0.0.0.0/0            scram-sha-256

pg_hba.conf 文件中,添加一条身份验证规则。这条规则的含义是允许来自任何 IP 地址的所有用户使用 scram-sha-256 认证方法连接到 PostgreSQL 14 服务器。 

其中各字段的含义为:

  • host:规则类型,表示基于主机的认证规则。
  • all:数据库名(或用户名),表示适用于所有数据库和所有用户。
  • all:认证条件,表示适用于所有用户。
  • 0.0.0.0/0:地址范围,表示接受来自任意 IP 地址的连接请求。
  • scram-sha-256:认证方法,表示使用 scram-sha-256 方法进行身份验证。

这个设置将允许任何 IP 地址的用户使用 scram-sha-256 认证方法连接到 PostgreSQL 14 服务器。

注意:

使用 0.0.0.0/0 范围的设置可能存在安全风险,因为它允许任意 IP 地址的连接。在生产环境中,请谨慎选择适当的地址范围并使用更安全的认证方法。

完成修改后,保存并退出 pg_hba.conf 文件。然后重新加载或重启 PostgreSQL 14 服务,使新的身份验证规则生效。重启服务:

sudo systemctl restart postgresql-14

这个时候如果你还想用 su - postgres 这种方式进入命令行模式可能是不能进入的,可以尝试使用如下命令:

psql -U postgres -h 127.0.0.1 --port 5432

在执行该命令后,你将被提示输入密码以进行身份验证。输入正确的密码后,psql 将连接到 PostgreSQL 14 数据库,并显示类似以下的输出:

psql (版本号)
输入 "help" 来获取帮助信息。

确认连接成功后,你可以开始在 psql 终端中执行 SQL 查询和命令。例如,你可以使用 \l 命令查看当前数据库的列表,使用 \dt 查看当前数据库中的所有表等。

4.2.1查找主机地址和端口号

执行上面命令时如何知道主机地址和端口号,可以执行以下步骤:

①检查 PostgreSQL 14 服务器的配置文件:打开 postgresql.conf 文件并查找 listen_addressesport 参数。这些参数分别指定了服务器监听的主机地址和端口号。

sudo vim /var/lib/pgsql/14/data/postgresql.conf

 在文件中搜索 listen_addressesport,记下它们的值。

②检查身份验证配置文件:打开 pg_hba.conf 文件并查找适用于 postgres 用户的认证规则。在这个规则中,你可以找到连接时使用的主机地址和端口号。

sudo vim /var/lib/pgsql/14/data/pg_hba.conf

找到包含 postgres 用户的规则行,并查看其中的主机地址和端口号。

③查看系统日志文件:如果你已经启动了 PostgreSQL 14 服务器,可以查看系统日志文件以获取有关主机地址和端口号的信息。

sudo tail -f /var/lib/pgsql/14/data/pg_log/postgresql-*.log

在日志文件中搜索类似于 "listening on" 或 "database system is ready to accept connections" 的消息,其中会显示服务器正在监听的主机地址和端口号。

在绝大多数情况下,上述三种方法得到的主机地址和端口号应该是一致的。因为 PostgreSQL 的主配置文件 postgresql.conf 和身份验证配置文件 pg_hba.conf 中都包含了服务器的监听地址和端口信息。

这两个配置文件通常指定了服务器监听的主机地址和端口号。主配置文件中的 listen_addresses 参数指定了服务器监听的主机地址,而 port 参数指定了服务器监听的端口号。而身份验证配置文件 pg_hba.conf 则指定了允许连接的主机地址和端口号。

因此,如果你在这两个文件中找到的地址和端口号是相同的,那么这个地址和端口号就是用于连接到 PostgreSQL 14 服务器的正确参数。

然而,仍然有可能存在某些特殊情况,例如在配置文件中进行了手动修改但未重启服务器的情况下,地址和端口号可能会不一致。因此,在使用时请务必确保准确地查找并使用正确的主机地址和端口号来连接到 PostgreSQL 14 服务器。

按照上面的步骤就已经成功安装配置PostgreSQL 14,接下来就可以在PostgreSQL 14 数据库中查询数据。

①打开终端并登录到 CentOS 7 服务器上。

②使用以下命令连接到 PostgreSQL 数据库:

psql -U your_username -d your_database

your_username 替换为你的数据库用户名,将 your_database 替换为你要连接的数据库名称。根据需要,可能需要提供密码或其他验证信息。

③成功连接到数据库后,你会看到命令提示符变为 your_database=#,表示你现在处于 PostgreSQL 数据库的交互式命令行界面。

④在命令提示符下,你可以输入 SQL 查询语句来执行各种数据库查询操作。例如,要查询表中的所有数据,可以使用以下命令:

SELECT * FROM your_table;

your_table 替换为你想要查询的实际表名。

⑤根据你的查询需求,你可以使用其他 SQL 查询语句和关键字,如 SELECTFROMWHEREGROUP BYORDER BY 等等。 

⑥当完成查询后,你可以使用 \q 命令退出 PostgreSQL 数据库的交互式命令行界面。

五、常用命令

--显示所有已创建的数据库列表,包括名称、所有者、编码等详细信息。
\l  

--查看特定数据库中的表和用户,请首先切换到该数据库
\c your_database

--列出所有表:
\dt

--查看当前数据库中的所有用户
SELECT * FROM pg_user;


--使用 psql 命令以超级用户身份连接到 PostgreSQL 14,然后连接到默认数据库:
psql -U postgres


--更新系统软件包,确保 CentOS 7 系统处于最新状态
sudo yum update


--初始化 PostgreSQL 数据库:
sudo postgresql-setup initdb

--启动 PostgreSQL 服务:
sudo systemctl start postgresql-14


--验证 PostgreSQL 14 服务器是否已成功重新启动:(看到类似 "active (running)" 的输出)
sudo systemctl status postgresql-14

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

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

相关文章

Install Nginx in Linux

Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。 1.yum 安装 nginx [rootVM-8-7-centos nginx]# yum install -y nginx Loaded plugins: fastestmirror, lang…

经典猜数游戏(python类封装)

五次机会猜测100以内随机正整数,我用初通的python类封装了代码并清屏上一次猜测提示,难有所增加咯。 (笔记模板由python脚本于2023年11月09日 12:31:30创建,本篇笔记适合掌握python循环和条件分支语句用法,初通python类的coder翻阅…

为什么审计平台不适合进行数据库变更管理?

关于视源电子 广州视源电子科技股份有限公司 (CVTE) 成立于 2005 年 12 月,旗下拥有多家业务子公司。 截至 2022 年底,公司总人数超 6000 人,约 60% 为技术人员。公司的主营业务为液晶显示主控板卡和交互智能平板等显控产品的设计、研发与销…

Shopee收款账户怎么设置?shopee收款方式选哪种

Shopee作为一家领先的电子商务平台,为卖家提供了多种收款方式。无论是在线支付、虚拟账户余额还是线下支付,卖家可以根据自己的需求和交易情况来进行选择。然而,在选择收款方式时,安全性、便捷性和市场适应性是需要考虑虾皮Shopee…

ChatGLM3 langchain_demo 代码解析

ChatGLM3 langchain_demo 代码解析 0. 背景1. 项目代码结构2. 代码解析2-1. utils.py2-2. ChatGLM3.py2-3. Tool/Calculator.py2-4. Tool/Weather.py2-5. main.py 0. 背景 学习 ChatGLM3 的项目内容,过程中使用 AI 代码工具,对代码进行解释,…

SpringMvc 常见面试题

1、SpringMvc概述 1.1、什么是Spring MVC ?简单介绍下你对springMVC的理解? Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦&am…

C++算法:矩阵中的最长递增路径

涉及知识点 拓扑排序 题目 给定一个 m x n 整数矩阵 matrix ,找出其中 最长递增路径 的长度。 对于每个单元格,你可以往上,下,左,右四个方向移动。 你 不能 在 对角线 方向上移动或移动到 边界外(即不允…

学习美团推荐系统质量模型建设

目录 一、背景引入 (一)基本背景说明 (二)从推荐系统“数据飞轮”看质量建设必要性 二、质量的定位和考量思考 (一)对推荐系统质量的思考迭代 (二)可用性计算的关注点 &#…

FreeRTOS源码阅读笔记3--queue.c

消息队列可以应用于发送不定长消息的场合,包括任务与任务间的消息交换,队列是 FreeRTOS 主要的任务间通讯方式,可以在任务与任务间、中断和任务间传送信息,发送到 队列的消息是通过拷贝方式实现的,这意味着队列存储…

【原创】java+swing+mysql爱心捐赠管理系统设计与实现

摘要: 爱心捐赠管理系统旨在管理和优化捐赠过程,提高效率,增强透明度,并鼓励更多的个人和企业参与公益捐赠,用户可以捐款或者捐物。本系统采用javaswing界面可视化技术,数据库使用mysql。 功能分析&#…

Python高级语法----深入理解Python迭代器与生成器

文章目录 1. 迭代器协议代码示例:2. 生成器基础代码示例:3. 使用yield的高级技巧代码示例:4. 生成器表达式代码示例:迭代器和生成器是Python中实现迭代的两种主要方式,它们都允许用户创建可以遍历数据集的对象。在Python中,迭代器协议是指对象需要遵守__iter__()和__next…

【大数据】NiFi 中的处理器(一):GenerateTableFetch

NiFi 中的处理器(一):GenerateTableFetch 1.简介2.应用场景3.示例3.1 案例一:无输入流文件,来源表含增量字段3.2 案例二:无输入流文件,不含增量字段3.3 案例三:无输入流文件&#xf…

通用文件在线预览软件kkFileView

什么是 kkFileView ? kkFileView 为文件文档在线预览解决方案,基本支持主流办公文档的在线预览,如 doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip&…

如何配置《动手学强化学习》的环境

如何配置《动手学强化学习》的环境 网站:https://hrl.boyuai.com/chapter/intro github仓库:https://github.com/boyu-ai/Hands-on-RL/tree/main 可以看到该教程要求使用gym0.18.3版本的gym库,本教程可以用于解决绝大多数需要使用Pendulum-…

科力雷达Lidar使用指南

科力2D Lidar使用指南 作者: Herman Ye Galbot Auromix 版本: V1.0 测试环境: Ubuntu20.04(x86) PC 以及 Ubuntu20.04(Arm) Nvidia Orin 更新日期: 2023/11/11 注1: 本文内容中的硬件由 Galbot 提供支持。 注2&#x…

力扣100题——子串

560.和为k的子数组 这道题目不是滑动窗口的类型,因为长度并不是固定的。(好的,我在说废话) 注意题目要求是子数组,且是连贯的。那这里的话,解法有很多,最简单的就是暴力解法,但在这…

无缝集成GORM与Go Web框架

探索GORM与流行的Go Web框架之间的和谐集成,以实现高效的数据管理 高效的数据管理是每个成功的Web应用程序的基础。GORM,多才多艺的Go对象关系映射库,与流行的Go Web框架非常搭配,提供了无缝集成,简化了数据交互。本指…

Git可视化界面的操作,SSH协议的以及IDEA集成Git

目录 一. Git可视化界面的操作 二. gitee的ssh key 2.1 SSH协议 2.2 ssh key 三. IDEA集成Git 3.1 分享项目 3.2 下载项目 一. Git可视化界面的操作 上一篇博客只用到了git的命令窗口,现在就来看看可视化窗口要怎么操作。 点击Git GUI Here GUI界面 在g…

【Git】git常用命令大全

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Git》。🎯🎯 &#x1f449…

afsim 下载链接

afsim是一个通用的建模框架,能够构建典型的虚拟威胁环境和相关模型。能够以可视化形式分析软件仿真结果,显示平台、路由、传感器区域等内容,能够基于事件生成图表,进行结果统计,能够按类型进行统计分析。 苦于网上没有…