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

PostgreSQL编译安装教程

下载安装

1.在家目录创建一个文件夹放下载安装包

mkdir software

cd software

2.下载文件压缩包


wget https://ftp.postgresql.org/pub/source/v16.0/postgresql-16.0.tar.gz

3.解压


tar -xzvf  postgresql-16.0.tar.gz

4.编译

在software/postgresql-16.0下

cd software/postgresql-16.0

# 编译出现 no acceptable C compiler found in $PATH
yum install gcc-c++

./configure --prefix=/usr/local/pgsql

编译过程中会出现三个数据包未发现的情况的一个情况


yum install libicu-devel

yum install -y readline-devel

yum install zlib-devel

看到这个就是编译好了 

5.安装

make && make install 

用户权限和环境变量设置

#创建用户组postgres
groupadd postgres
#创建用户postgres并设置groups、gid和家目录
useradd -g postgres -G postgres -d /home/postgresql postgres 
#设置用户密码
passwd postgres

创建数据目录和日志目录

注意当前路径是在/usr/local/pgsql下

cd /usr/local/pgsql
mkdir data log

设置权限

接下来需要设置权限,将/usr/local/pgsql (我们安装PostgreSQL数据库的目录) 目录全部赋权给postgres用户

chown -R postgres.postgres /usr/local/pgsql/

设置环境变量

为了方便起见设置一下相关的环境变量,此处是要设置postgres用户的环境变量,所以首先要把Linux的登陆用户由root切换到以postgres用户登陆。

su - postgres
vim .bash_profile

添加一下配置 

PGHOME=/usr/local/pgsql
export PGHOME

PGDATA=/usr/local/pgsql/data
export PGDATA

PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin

刷新配置生效

source /home/postgresql/.bash_profile

检查是否生效

psql -V

看到安装PostgreSQL的版本号则代表生效 

初始化数据库

cd /usr/local/pgsql/bin/ 

这个是这个数据库的初始化指令

如果pgdata目录没有指定,则会默认使用环境变量中的PGDATA指定的目录作为数据库存放的目录,由于之前我们刚刚设置了"PGDATA=/usr/local/pgsql/data"环境变量,所以此处我们也就无需再额外指定,直接执行初始化命令即可。

initdb

 这样就成功了

修改配置文件 

在"/usr/local/pgsql/data"的目录可以看到生成的数据和配置文件等。

cd /usr/local/pgsql/data

数据库访问控制配置文件

主要是配置postgresql.conf 和 pg_hba.conf 个。

  1. postgresql.conf 针对实例的配置
  2. pg_hba.conf 针对数据库访问的控制
vim postgresql.conf 


 

vim pg_hba.conf

PostgreSQL启动与关闭

手动

pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/log/pg_server.log start

自动

此步骤需要root用户操作

PostgreSQL解压后的安装包目录中提供了数据库启动与关闭的脚本,此脚本不但可以帮助我们简化操作,而且可以用作开机启动的脚本和service/systemctl 控制服务的脚本。目录里"linux"文件就是我们要找的文件。

cd /root/software/postgresql-16.0/contrib/start-scripts/

把文件"linux"拷贝到目录"etc/init.d/"下,并改名为postgresql。
把脚本文件"postgresql"加入到开机启动的程序列表。
赋予"postgresql"文件有执行的权限。

cp /root/software/postgresql-16.0/contrib/start-scripts/linux /etc/init.d/postgresql

chkconfig --add postgresql或者systemctl enable postgresql

chmod 755 /etc/init.d/postgresql

启动和停止 

service postgresql start

service postgresql stop

客户端测试连接

链接时候要在root启动

su - postgres

psql

设置数据库密码密码

postgres=# \password

放开安全策略。


http://www.kler.cn/a/449198.html

相关文章:

  • Gin-vue-admin(1):环境配置和安装
  • Git 的基本概念和使用
  • 每天40分玩转Django:Django部署
  • 解析在OceanBase创建分区的常见问题|OceanBase 用户问题精粹
  • c# 实现一个简单的异常日志记录(异常迭代+分片+定时清理)+AOP Rougamo全局注入
  • windows安装Elasticsearch及增删改查操作
  • C++ 的IO流
  • 如何找到一篇文献/论文/会议的引用,以及分清自己使用的引用格式
  • 20241230 机器学习ML -(1)线性回归(scikitlearn)
  • 标贝科技受邀出席2024ADD数据应用场景大会 共议数据要素发展新契机
  • 基于SSM+Vue的心理咨询问诊系统+LW示例参考
  • 基于Vue.js和SpringBoot的笔记记录分享网站的设计与实现(文末附源码)
  • PHP 新手教程:从入门到构建简单网页
  • 感知机与逻辑回归的异同点
  • 【CDN】快速了解CDN是什么?以及工作原理和应用场景
  • 事件响应基本流程
  • Why SAP TM?
  • 《深入浅出 Servlet:Java Web 开发的基石》(一)
  • Adversarial Machine Learning(对抗机器学习)
  • 【国产NI替代】基于STM32+FPGA的8振动+4温度(16bits)数据采集板卡解决方案,支持全国产
  • [创业之路-207]:《华为战略管理法-DSTE实战体系》- 6-什么是目标管理、什么是过程管理、什么是闭环管理?
  • Docker 入门:如何使用 Docker 容器化 AI 项目(一)
  • 排序-冒泡排序
  • 深入探索Flink的复杂事件处理CEP
  • 2009年408真题解析-数据结构篇(未完)
  • 使用idea创建JDK8的SpringBoot项目