Postgresql在linux环境下以源码方式安装
linux环境下源码方式的安装
1.下载安装包(源码安装方式)
安装包下载
https://www.postgresql.org/ftp/source/
2.安装postgresql
① 创建安装目录
mkdir /opt/pgsql12
② 解压下载的安装包
cd /opt/pgsql12
tar -zxvf postgresql-12.16.tar.gz
③编译安装
#指定源码的位置./configure --prefix=/opt/pgsql12/postgresql-12.16
./configure --help查看可定制的参数,其中打印的结果中–with类的都是打开一些功能,此外还有–without,–disable等,具体参考官网;
–prefix=prefix:安装到prefix指向的目录;默认为/usr/local/pgsql
或者./configure --without-readline 按照默认的
–bindir=dir:安装应用程序到dir;默认为prefix/bin
–with-docdir=dir:安装文档到dir;默认为prefix/doc
–with-pgport=port:设置默认的服务器端网络连接服务TCP端口号
–with-tcl:为服务端提供Tcl存储过程支持
–with-perl:为服务端提供Perl存储过程支持
–with-python:为服务端提供Python存储过程支持
④ 创建用户、组、数据目录
创建新用户,PostgreSQL不允许使用root用户运行服务,需要创建新用户用于管理PostgreSQL服务
# 创建组
groupadd postgres
# 创建用户
useradd -g postgres postgres
# 创建数据目录
mkdir –p /opt/pgsql12/postgresql-12.16/data
# 修改目录归属
chown postgres:postgres /opt/pgsql12/postgresql-12.16/data
⑤配置环境变量
环境变量的配置方式可参考
root用户执行以下操作
编辑修改.bash_profile文件
#/home/postgres是你刚才创建的用户
vim /home/postgres/.bash_profile
在原有内容添加
PG_HOME=/opt/pgsql12/postgresql-12.16#注意 PGDATA是固定名称
export PGDATA=/opt/pgsql12/postgresql-12.16/data
使修改的.bash_profile文件立即生效
source /home/postgres/.bash_profile
#切换到postgres用户
su - postgres
#检测postgresql版本
psql --version
输出版本号则证明环境变量配置正确
⑥初始化数据库
# 切换至postgres用户su - postgres
# 使用initdb命令初始化数据库initdb -A md5 -D $PG_DATA -E utf8 --locale=C -W
-A 是加密方式
-D 是数据目录
-E 是字符集 (默认即utf8)
执行之后会提示输入密码。(设置你的数据库的密码)
⑦ 启停数据库
可以使用初始化打印的结果来启动
pg_ctl -D /opt/pgsql12/postgresql-12.16/data -l logfile start
如果配了环境变量(⑤中的环境变量)也可以直接pg_ctl start来启动,因为pgdata能识别到;
重启:pg_ctl restart
关闭:pg_ctl stop
通过pg_ctl --help可以查看完整的选项,
其中关闭和重启选项中的shutdown modes包括smart、fast、immediate;
smart是最安全的关闭方法,等待所有客户端连接关闭之后才关闭;
fast是用的生产中最多的,自动杀掉连接,回滚未完成事务;
immediate相当于kill -9;
pg_ctl -D /opt/pgsql12/postgresql-12.16/data stop -ms
pg_ctl -D /opt/pgsql12/postgresql-12.16/data stop -mf
pg_ctl -D /opt/pgsql12/postgresql-12.16/data stop -mi
此外启动数据库还可以通过脚本启动,需要切换回root用户执行
/opt/pgsql12/postgresql-12.16/contrib/start-scripts/linux
使用此脚本需要修改脚本中prefix、PGDATA等内容。
3.利用chkconfig设置PostgreSQL为服务自启动(没啥必要)
①拷贝启动脚本
PostgreSQL的开机自启动脚本位于/opt/pgsql12/postgresql-12.16/contrib/start-scripts/linux
是postgresql在linux系统上的启动脚本。
# 复制到系统的/etc/init.d/目录下的postgresql文件上
cp /opt/pgsql12/postgresql-12.16/contrib/start-scripts/linux /etc/init.d/postgresql
②修改/etc/init.d/postgresql文件的两个变量prefix、PGDATA
# Installation prefix
prefix=/opt/pgsql12/postgresql-12.16# Data directory
PGDATA="/opt/pgsql12/postgresql-12.16/data"
③要将 postgresql服务设置为开机自启动
chkconfig --add postgresql
4.配置远程访问
①开放端口号或者关闭linux的防火墙也可以(不推荐)
# 开放5432端口
firewall-cmd --zone=public --add-port=5432/tcp --permanent
# 配置立即生效
firewall-cmd --reload
②修改ip绑定
vim /opt/pgsql12/postgresql-12.16/data/postgresql.conf
将监听地址由localhost改为*
listen_addresses = '*'
在esc命令模式下通过/listen_addresses找到 将注释打开修改为*
*代表监听任意ip可以修改为实际网络的地址
③允许所有ip访问
vim /opt/pgsql12/postgresql-12.16/data/pg_hba.conf
大概86行下面添加如下内容
host all all 0.0.0.0/0 md5
④在windows环境下测试连接
telnet ip 端口号 可查看某端口是否开放
相关文章:

Postgresql在linux环境下以源码方式安装
linux环境下源码方式的安装 1.下载安装包(源码安装方式) 安装包下载 https://www.postgresql.org/ftp/source/ 2.安装postgresql ① 创建安装目录 mkdir /opt/pgsql12② 解压下载的安装包 cd /opt/pgsql12 tar -zxvf postgresql-12.16.tar.gz ③编…...

vivo发布“蓝心千询”自然语言对话机器人
🦉 AI新闻 🚀 vivo发布“蓝心千询”自然语言对话机器人 摘要:vivo今日发布了“蓝心千询”自然语言对话机器人,基于蓝心大模型。蓝心千询可以进行知识信息的快速问答,文学创作、图片生成,甚至还能编写程序…...

Python基础入门例程39-NP39 字符串之间的比较(运算符)
最近的博文: Python基础入门例程38-NP38 牛牛的逻辑运算(运算符)-CSDN博客 Python基础入门例程37-NP37 不低于与不超过(运算符)-CSDN博客 Python基础入门例程36-NP36 谁的数字大(运算符)-CSD…...
java中的Thread类解析
实现线程的三种方式 1、继承Thread类,重写里面的run方法 public class MyThread extends Thread{Overridepublic void run() {System.out.println("threadName:"Thread.currentThread().getName());}}/*** 方式一:继承Thread类,重…...
如何正确清理DNS缓存
前言 有些场景,需要刷新自己本机的DNS缓存,比如说某个cdn访问不到,某个网络不通等等,都有可能是由于DNS缓存记录了错误的ip映射关系而导致的。本文介绍下如何刷新本机的DNS缓存。 Mac 如果你是mac用户,执行以下操作…...

Git从基础到实践
1.Git是用来做什么的? git就是一款版本控制软件,主要面向代码的管理。你可以理解为Git是一个代码的备份器,给你的每一次修改后的代码做个备份,防止丢失,这个是git最基本的功能。 其次,git不止备份,当你需要比对多…...
C 保留字解释
语句 // 单行注释 /* */ 多行注释 #include 头文件引入声明 #define 预先定义 return 结果返回语句(可以带参数,也可不带参数) printf(); 输出 if 条件语句 else 条件语句否定分支(和 if 连用&a…...
【Web】https 与 http 的区别
文章目录 一、基本概念二、区别对比 一、基本概念 http :超文本传输协议,一种网络传输协议,一个客户端和服务器请求和应答的标准(TCP)。 https :简单讲就是在http基础上 使用 SSL 或 TLS 对请求和响应进行…...
【KVM】半虚拟化和全虚拟化技术
前言 大家好,我是秋意零。 上一篇的介绍了软件和硬件虚拟化类型,现在来看看半虚拟化技术和通过硬件虚拟化类型辅助的全虚拟化技术吧! 👿 简介 🏠 个人主页: 秋意零🔥 账号:全平台…...

react中的useReducer复杂的状态管理
一、useReducer reducer官网教程 useReducer 是 React 提供的一个用于状态管理的 Hook。它可以替代 useState,更适用于处理复杂的状态逻辑。 useReducer 接受一个reducer函数和一个初始状态,并返回当前状态以及一个 dispatch 函数,用来触发…...

SpringCloudAlibaba - 项目完整搭建(Nacos + OpenFeign + Getway + Sentinel)
目录 一、SpringCloudAlibaba 项目完整搭建 1.1、初始化项目 1.1.1、创建工程 1.1.2、配置父工程的 pom.xml 1.1.3、创建子模块 1.2、user 微服务 1.2.1、配置 pom.xml 1.2.2、创建 application.yml 配置文件 1.2.3、创建启动类 1.2.4、测试 1.3、product 微服务 1…...

如何使用Python的matplotlib和seaborn库绘制颜色渐变的高级散点图
前言 我的科研论文中需要绘制一个精美的散点图,表达的是各个散点距离中心点的距离远近情况,特点如下: 绘图的美观程度高根据距离目标点的距离的不同,各个散点能有颜色或者是透明度上的区分相应的统计量是与中心点(目…...

根据Word模板,使用POI生成文档
突然想起来有个小作业:需要根据提供的Word模板填充数据。这里使用POI写了一个小demo验证下。 测试用模板: 执行结果 1.引入依赖坐标 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId&…...
大语言模型的学习路线和开源模型的学习材料《一》
文章目录 第一层 LLMs to Natural Language Processing (NLP)第一重 ChatGLM-6B 系列ChatGLM3ChatGLM2-6BChatGLM-6B第十重 BaichuanBaichuan2Baichuan-13Bbaichuan-7B第十一重 Llama2第二重 Stanford Alpaca 7B第三重 Chinese-LLaMA-Alpaca第四重 小羊驼 Vicuna第五重 MOSS第六…...

【案例】3D地球
效果图: 直接放源码 <!DOCTYPE html> <html> <head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><meta name"viewport" content"initial-scale1.0, user-scalableno" …...
安全组问题 访问华为云服务器端口
一些常用的安全组的配置示例,包括远程登录云服务器,对外提供网站访问、不同安全组内实例内网互通等。 通常情况下,安全组默认拒绝所有来自外部的请求。您需要遵循白名单原则添加安全组入方向规则,允许来自外部的特定请求访问安全组…...
音视频常见问题(七):首开慢
本文主要讨论音视频应用中的首开慢问题,文章介绍了首开慢的产生原因:DNS解析耗时、网络传输协议耗时、传输网络调度耗时,并提供了排查方式和解决方案。即构科技的Express SDK和MSDN网络可以有效的解决首开慢问题,且节省开发成本。…...
[SSD综述1.2] SSD 和 HDD(机械硬盘) 区别?
依公知及经验整理,原创保护,禁止转载。 专栏 《SSD入门到精通系列》 <<<< 返回总目录 <<<< 文章目录 前言1. 速度差异多大1.1 常见产品速度1.2 最新产品速度2 机械硬盘和固态硬盘的差异点3 引起速度差异的原因是什么(硬件)?3.1 存储介质不同3.…...
ali sdm docker
当然要先安装docker和docker-compose cd /usr/local mkdir sdm cd sdm touch docker-compose.yml,编辑内容如下: version: "3" services:sdm:image: registry.cn-shanghai.aliyuncs.com/nls-cloud/sdm:latestcontainer_name: nls-cloud-s…...
HCIE-kubernetes(k8s)-Authentication身份验证
1、远程登录 1、kubeconfig方式 在master上都是以kubeconfig方式登录的,并不是说有一个文件叫kubeconfig。 默认使用的配置文件是~/.kube/config 这个配置文件,而这个配置文件是通过这个文件/etc/kubernetes/admin.conf 如果在node上执行命令ÿ…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道
文/法律实务观察组 在债务重组领域,专业机构的核心价值不仅在于减轻债务数字,更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明,合法债务优化需同步实现三重平衡: 法律刚性(债…...
JS红宝书笔记 - 3.3 变量
要定义变量,可以使用var操作符,后跟变量名 ES实现变量初始化,因此可以同时定义变量并设置它的值 使用var操作符定义的变量会成为包含它的函数的局部变量。 在函数内定义变量时省略var操作符,可以创建一个全局变量 如果需要定义…...
React父子组件通信:Props怎么用?如何从父组件向子组件传递数据?
系列回顾: 在上一篇《React核心概念:State是什么?》中,我们学习了如何使用useState让一个组件拥有自己的内部数据(State),并通过一个计数器案例,实现了组件的自我更新。这很棒&#…...

aurora与pcie的数据高速传输
设备:zynq7100; 开发环境:window; vivado版本:2021.1; 引言 之前在前面两章已经介绍了aurora读写DDR,xdma读写ddr实验。这次我们做一个大工程,pc通过pcie传输给fpga,fpga再通过aur…...