当前位置: 首页 > ds >正文

Linux环境下安装PostgreSQL详细步骤

目录

下载

安装

手动注册为 systemd 服务


        PostgreSQL是一款功能强大的开源关系型数据库管理系统,广泛应用于各种规模的项目中。本文将详细介绍如何在Linux环境下安装和配置PostgreSQL。

下载

官方下载网址:

https://www.postgresql.org/ftp/source/ 自行选择合适的版本。

下载后使用工具上传到服务器目录,这里使用Xftp进行上传演示。

也可以选择使用命令上传。

解压到指定目录。

tar -zxvf postgresql-13.3.tar.gz -C /export/server/

创建软链接。

ln -s  /export/server/postgresql-13.3 /export/server/pgsql

安装

创建用户组

--创建postgres用户组
groupadd postgres
--创建postgres用户,其用户组为postgres
useradd postgres -g postgres

安装必须依赖。 

yum install -y gcc gcc-c++
yum install -y readline-devel
yum install -y zlib-devel

编译。 

--创建一个路径用于存放编译后的postgresql
mkdir /opt/postgresql
--进入安装路径下,编译源码并将编译后的postgresql存放在/opt/postgresql路径下
cd /opt/postgresql
./configure --prefix=/opt/postgresql
--构建
make
--安装文件
make install

创建存放数据目录,初始化数据库并启动。

--在/opt/postgresql路径下创建数据目录pg_data
mkdir /opt/postgresql/pg_data
--修改数据目录的所属用户与用户组均为postgres
chown -R postgres:postgres /opt/postgresql/pg_data
--切换到postgres用户,并初始化数据库
su postgres
/opt/postgresql/bin/initdb -D /opt/postgresql/pg_data
--启动数据库,并将日志打印到pg.log文件上
/opt/postgresql/bin/pg_ctl -D /opt/postgresql/pg_data -l /opt/postgresql/pg_data/pg.log start

创建测试数据库,修改超级管理员postgres密码。

--创建test_pgdb数据库
/opt/postgresql/bin/createdb test_pgdb
--访问test_pgdb数据库
/opt/postgresql/bin/psql test_pgdb
--修改管理员postgres的密码为postgres
ALTER USER postgres WITH PASSWORD 'postgres';

修改配置文件。

//先备份文件
cp /opt/postgresql/pg_data/pg_hba.conf /opt/postgresql/pg_data/pg_hba.conf_back
//编辑源文件
vim /opt/postgresql/pg_data/pg_hba.conf

修改一:

 修改二:

--修改postgresql.conf文件 vim /opt/postgresql/pg_data/postgresql.conf 修改前先备份

--完成修改后重启数据库 /opt/postgresql/bin/pg_ctl -D /opt/postgresql/pg_data -l /opt/postgresql/pg_data/pg.log restart

查看是否启动成功,如下图表示已经成功。

查看端口是否开放。

如果看到 5432/tcp,说明端口已成功开放。否则需要先开放端口。

如果端口未开放,直接手动添加端口后重启防火墙即可。

firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload

 

手动注册为 systemd 服务

如果希望将 xugu 数据库注册为 systemd 服务,可以按照以下步骤操作:

创建服务文件:

sudo vim /etc/systemd/system/postgresql.service

 在文件中添加如下配置:

[Unit]
Description=PostgreSQL database server
After=network.target[Service]
Type=forking
User=postgres
Group=postgres
ExecStart=/opt/postgresql/bin/pg_ctl -D /opt/postgresql/pg_data -l /opt/postgresql/pg_data/pg.log start
ExecStop=/opt/postgresql/bin/pg_ctl -D /opt/postgresql/pg_data stop
ExecReload=/opt/postgresql/bin/pg_ctl -D /opt/postgresql/pg_data reload
Restart=on-failure[Install]
WantedBy=multi-user.target

设置权限

sudo chmod 644 /etc/systemd/system/postgresql.service

重新加载systemd配置。

sudo systemctl daemon-reload

设置服务。

//开启开机自起
sudo systemctl enable postgresql
//启动服务
sudo systemctl start postgresql
//查看状态
sudo systemctl status postgresql
//停止服务
sudo systemctl stop postgresql
//重启服务
sudo systemctl restart postgresql
//禁止使用开机自启
sudo systemctl disable postgresql

使用Navicat工具连接远程。

至此安装完成!!!

参考文章:在Linux环境下安装PostgreSQL - 柯南。道尔 - 博客园 

http://www.xdnf.cn/news/1724.html

相关文章:

  • Tailwind CSS 初学者入门指南:项目集成,主要变更内容!
  • LLM学习笔记4——本地部署Docker、vLLM和Qwen2.5-32B-Instruct实现OpenManus的使用
  • JDK(java)安装及配置 --- app笔记
  • Matlab 基于共面螺旋管或共面亥姆霍兹谐振器的超薄低频吸声板
  • Sharding-JDBC 系列专题 - 第九篇:高可用性与集群管理
  • 【JavaScript】`Object` 对象静态方法详解
  • 怎样记忆Precision、Recall?
  • [特殊字符][特殊字符] HarmonyOS相关实现原理聊聊![特殊字符][特殊字符]
  • 【玩转全栈】—— 无敌前端究极动态组件库--Inspira UI
  • 乡村治理数字化平台:信息技术赋能乡村振兴的深度探索
  • 数据结构-选择排序(Python)
  • QT创建软件登录界面(14)
  • JavaScript 的“世界模型”:深入理解对象 (Objects)
  • 理解欧拉公式
  • 弄清C语言中的链表
  • 济南国网数字化培训班学习笔记-第二组-1节-输电线路工程
  • DRF凭什么更高效?Django原生API与DRF框架开发对比解析
  • 如何创建和使用 Hive 视图
  • 【低配置电脑预训练minimind的实践】
  • 【网络安全】社会工程学策略
  • H3C Magic路由器安全警报来啦![特殊字符][特殊字符]
  • Spark-Streaming核心编程(2)
  • 三国杀专业分析面板,立志成为桌游界的stockfish
  • AI与智能能源管理:如何通过AI优化能源分配和消耗?
  • 矩阵运营的限流问题本质上是平台与创作者之间的流量博弈
  • 【25软考网工】第三章(3)虚拟局域网VLAN
  • Nginx 反向代理,啥是“反向代理“啊,为啥叫“反向“代理?而不叫“正向”代理?它能干哈?
  • Qt5.15.2+OpenCV4.9.0开发环境搭建详细图文教程(OpenCV使用Qt自带MinGW编译的全过程,包教包会)
  • 低代码平台开发串口调试助手
  • 【Java面试笔记:进阶】17.一个线程两次调用start()方法会出现什么情况?