Postgresql 的编译安装与包管理安装, 全发行版 Linux 通用

在这里插入图片描述

博客原文

文章目录

    • 实验环境信息
    • 编译安装
      • 获取安装包
      • 环境依赖
      • 编译安装
        • 安装 contrib 下工具代码
      • 创建用户
      • 创建数据目录
      • 设置开机自启动
      • 启动数据库
      • 常用运维操作
    • apt 安装
      • 更新源
      • 安装 postgresql
      • 开机自启
      • 修改配置
      • 修改密码

实验环境信息

  • Ubuntu 20.04
  • Postgre 16.1

编译安装

获取安装包

从PostgreSQL官网下载PostgreSQL的安装包

$ VERSION=16.1
$ wget https://ftp.postgresql.org/pub/source/v$VERSION/postgresql-$VERSION.tar.gz
$ tar zxvf postgresql-$VERSION.tar.gz
$ cd postgresql-$VERSION

环境依赖

# 创建postgreSQL的安装目录
$ mkdir /usr/local/postgresql# 检查环境配置--prefix是指定postgreSQL安装路径
$ ./configure --prefix=/usr/local/postgresql

环境依赖报错:

  1. configure: error: no acceptable C compiler found in $PATH
    1. 说明: 没有 C 语言编译器, apt install -y gcc
  2. configure: error: ICU library not found
    1. 直接跳过使用 ./configure --prefix=/usr/local/postgresql --without-icu
  3. configure: error: readline library not found
    1. 有网络:apt-get install -y libreadline-gplv2-dev
    2. 无网络:下载软件包使用dpkg命令安装 ,可在网站pkgs.org上下载
      • libtinfo-dev_6.0+20160213-1ubuntu1_amd64.deb
      • libreadline-gplv2-dev_5.2+dfsg-3build1_amd64.deb
  4. configure: error: zlib library not found
    1. 有网络:apt-get install zlib1g-dev
    2. 无网络:下载软件包
      • zlib1g-dev_1.2.8.dfsg-2ubuntu4_amd64.deb

编译安装

$ make && make install
安装 contrib 下工具代码
$ cd contrib
$ make && make install

创建用户

$ groupadd postgres
$ useradd -g postgres postgres -d /home/postgres
$ id postgres
uid=1001(postgres) gid=1001(postgres) groups=1001(postgres)
# 设置密码
$ passwd postgres
# 输入密码

创建数据目录

只要暴露 PGDATA 即可

$ mkdir -p /var/postgresql/data
$ chown -R postgres:postgres /usr/local/postgresql
$ chown -R postgres:postgres /var/postgresql$ chmod -R 775 /var/postgresql/*$ vi /etc/profile   # 添加以下行, 不要使用 cat << EOF
export PGHOME=/usr/local/postgresql
export PGDATA=/var/postgresql/data
export PATH=$PATH:$PGHOME/bin$ source /etc/profile

设置开机自启动

$ cd ~/postgresql-16.1/contrib/start-scripts$ vi linux
修改 prefix 为安装目录 /usr/local/postgresql
修改 PGDATA 为数据目录 /var/postgresql/data
注意, PGUSER 为运行 postgre 的用户$ chmod a+x linux
$ cp linux /etc/init.d/postgresql# 设置postgresql服务开启自启动
$ systemctl enable postgresql
  1. systemctl 服务开机自启失败: update-rc.d: error: postgresql Default-Start contains no runlevels, aborting.

    1.  $ vi /etc/init.d/postgresql在 #!/bin/sh 头部下添加一下注释>>>>>>>>>>>>>>>### BEGIN INIT INFO# Provides:          XXX# Required-Start:# Required-Stop:# Default-Start:     2 3 4 5# Default-Stop:      0 1 6# Short-Description: Start XXX daemon at boot time# Description:       Start XXX daemon at boot time### END INIT INFO<<<<<<<<<<<<<<<<
    2. 如图:在这里插入图片描述

启动数据库

# 初始化数据库
$ initdb -D /var/postgresql/data# 启动服务
$ pg_ctl -D /var/postgresql/data -l /var/postgresql/logs/logfile start#连接数据库
$ psql # 创建数据库 
postgres=# create database test; # 创建表
postgres=# create table t_user (id integer, name text); # 插入测试数据
postgres=# insert into t_user values (1,'joke');# 查询数据
postgres=# select * from t_user ;#退出psql窗口
postgres=# \q

常用运维操作

1. 修改监听所有网络以及数据库连接数

# 修改配置文件
$ vim /var/postgresql/data/postgresql.conf# listen_addresses = 'localhost' 监听本机,'*'监听所有网络
listen_addresses = '*' 
# max_connections 数据库的连接数根据具体需求更改 

2. 远程访问

$ vim /var/postgresql/data/pg_hba.conf 
#在文件的最下方加上下面的这句话,最后一个 trust 表示所有用户不需要密码,需要密码要设置为 md5
host    all         all         0.0.0.0/0             md5

3. 基础运维命令

# 切换postgres用户
$ su - postgres# 重启服务
$ pg_ctl -D /var/postgresql/data -l /var/postgresql/logs/logfile restart# 停止服务
$ pg_ctl -D /var/postgresql/data -l /var/postgresql/logs/logfile stop

4. 防火墙

# 切换root用户
$ su - root# 防火墙 允许5432 端口
$ ufw allow 5432

5. 修改密码

# 切换用户
$ su - postgres# 客户端登录
$ psql
# psql -U postgres -h 127.0.0.1 -p 5432# 修改密码
postgres=# alter user postgres with password '123456';
ALTER ROLE

apt 安装

更新源

$ echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list# 添加秘钥
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -$ apt update

安装 postgresql

# 查看版本
$ apt-cache madison postgresql   # 服务端
$ apt-cache madison postgresql-contrib   # 服务端工具包
$ apt-cache madison postgresql-client   # 客户端# 安装 postgresql
$ apt install -y postgresql-16 postgresql-contrib postgresql-client
# apt install -y postgresql

apt 安装会默认创建一个 postgres 用户

开机自启

$ systemctl status postgresql
● postgresql.service - PostgreSQL RDBMSLoaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)Active: active (exited) since Sat 2024-01-27 10:40:44 UTC; 51s agoMain PID: 6952 (code=exited, status=0/SUCCESS)Tasks: 0 (limit: 4557)Memory: 0BCGroup: /system.slice/postgresql.serviceJan 27 10:40:44 ubuntu systemd[1]: Starting PostgreSQL RDBMS...
Jan 27 10:40:44 ubuntu systemd[1]: Finished PostgreSQL RDBMS.# 开机自启
$ systemctl enable --now postgresql

修改配置

# ps -ef 获取 postgre 的配置文件位置
$ ps -ef|grep postgre# 修改监听地址
$ sed -i "s@#listen_addresses = 'localhost'@listen_addresses = '*'@g" /etc/postgresql/16/main/postgresql.conf# 我们可以从配置文件知道 hba_file 的位置
# 修改 hba_file 添加支持 md5 密码登录
$ echo "host    all             all             192.168.154.0/24            md5" >> /etc/postgresql/16/main/pg_hba.conf$ systemctl restart postgresql

修改密码

# 切换用户
$ su - postgres# 客户端登录
$ psql
# psql -U postgres -h 127.0.0.1 -p 5432# 修改密码
postgres=# alter user postgres with password '123456';
ALTER ROLE

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

BUUCTF LKWA

1.访问页面。 2.选择 Variables variable 关卡 3.获得flag http://357dab81-78b8-4d74-976a-4a69dd894542.node5.buuoj.cn:81/variables/variable.php?funcpassthru&inputcat%2Fflagflag{0020ced6-8166-4fa5-87a7-7d93ee687c3e}

【Linux笔记】动静态库的封装和加载

一、静态库的封装 我们在学习C语言阶段其实就已经知道一个可执行程序的形成过程分为预处理、编译、汇编、链接这四个阶段&#xff0c;而且也知道我们程序中使用的各种库其实是在链接的阶段加载的。 可我们那时候并不知道库是怎么被加载的&#xff0c;或者库是怎么形成的&…

结构体的大小以及内存对齐问题

结构体的大小怎么计算&#xff1f;什么是结构体的对齐&#xff1f; 首先想要直到结构体的大小需要先了解结构体的内存对齐。那么&#xff0c;什么是结构体的内存对齐&#xff1a; 什么是结构体内存对齐 结构体的对齐 就是 结构体类型数据在内存中按照一定的对齐规律储存。结…

python+django高校活动报名场地管理系统l1ro4

校园活动管理平台程序的开发&#xff0c;在数据库的选择上面&#xff0c;选择功能强大的MySQL数据库进行数据的存放操作。 技术栈 后端&#xff1a;python 前端&#xff1a;vue.jselementui 框架&#xff1a;django Python版本&#xff1a;python3.7 数据库&#xff1a;mysql5…

实现自定义标记

实现自定义标记 问题陈述 New Tech Book的高级管理层决定在其用JSP设计的应用程序的所有页面上显示版权信息。它们还要去如何向应用程序中添加JSP页面,可以重用显示版本信息的代码。公司的软件开发人员Jerry Smith决定用自定义标记来创建应用程序的这一部分。 解决方案 要解…

kali最新最简单安装

之前都是用iso镜像文件的 今年好多东西都删库了&#xff0c;所有还是要主要资源的保存 去官网找下载 一般来说都是用虚拟机的 下载完会是一个压缩文件&#xff0c; 解压&#xff0c;然后操作之前需要先下载虚拟机 打开方式用虚拟机打开 kali就按装好了

腾讯云4核8G服务器可以用来干嘛?怎么收费?

腾讯云4核8G服务器适合做什么&#xff1f;搭建网站博客、企业官网、小程序、小游戏后端服务器、电商应用、云盘和图床等均可以&#xff0c;腾讯云4核8G服务器可以选择轻量应用服务器4核8G12M或云服务器CVM&#xff0c;轻量服务器和标准型CVM服务器性能是差不多的&#xff0c;轻…

Minecraft的红石教程之电梯

一.前言 我记得是上初中的时候&#xff0c;就看到了这类电梯。现在我在看现在这类电梯的相关视频&#xff0c;大多是盗用创意未能领会其中的红石运作规律&#xff0c;于是我就删繁就简写了这篇。 二.步骤 1.材料 粘性活塞&#xff0c;黏液块&#xff0c;红石&#xff0c;红…

考研数据结构笔记(6)

单链表的建立 单链表的建立尾插法头插法 双链表初始化插入删除遍历小结 单链表的建立 尾插法 首先对单链表进行定义&#xff0c;然后初始化 法1&#xff1a;定义遍历链表的插入函数 法2&#xff1a;利用指针移动建立函数 头插法 带头结点 双链表 初始化 插入 p节点不是最后…

【Linux】学习-基础IO—下

Linux基础IO—上 重定向 通过上篇的学习&#xff0c;我们了解了文件描述符的分配规则是遍历指针数组&#xff0c;用没有被使用的最小下标作为新的文件描述符&#xff0c;也就是我们可以通过关闭三个标准流文件并使用他们原先所占用的0&#xff0c;1&#xff0c;2描述符。 那…

【蓝桥杯Python】试题 算法训练 藏匿的刺客

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 强大的kAc建立了强大的帝国&#xff0c;但人民深受其学霸及23文化的压迫&#xff0c;于是勇敢的鹏决心反抗。   kAc帝国防守…

元素显示模式

1.块级元素 显示特点&#xff1a; 1.独占一行&#xff08;一行只能显示一个&#xff09; 宽度默认是父元素的宽度可以设置宽高 代表标签&#xff1a;div、p、h系列、ul、li、dl、dd、from、header、nav、footer...... 2.行内元素 显示特点&#xff1a; 一行可以显示多个宽…

中国判决生效,诺基亚全面与中国手机签署授权协议,降低专利费

日前媒体报道指诺基亚与中国两家手机企业都签署了专利授权协议&#xff0c;全面结束诉讼&#xff0c;而这一切正是在OPPO于去年底在重庆法院就OPPO与诺基亚的专利费诉讼问题&#xff0c;做出裁决之后&#xff0c;要求诺基亚按公平、公正等合理收费原则收取专利费。 这几年诺基亚…

HiveSQL——连续增长问题

注&#xff1a;参考文章&#xff1a; SQL连续增长问题--HQL面试题35_sql判断一个列是否连续增长-CSDN博客文章浏览阅读2.6k次&#xff0c;点赞6次&#xff0c;收藏30次。目录0 需求分析1 数据准备3 小结0 需求分析假设我们有一张订单表shop_order shop_id,order_id,order_time…

动态水印怎么加 怎么去除动态水印 视频剪辑软件 会声会影安激活序列号 会声会影怎么剪辑视频

为了防止白嫖或者增加美观效果&#xff0c;视频制作者可能会采用动态水印的方式&#xff0c;让其他人难以盗取视频使用。动态水印的添加&#xff0c;需要应用到运动路径功能。接下来&#xff0c;本文会教大家动态水印怎么加&#xff0c;怎么去除动态水印的相关内容。感兴趣的小…

第67讲自定义icon实现

element-plus内置有一些常用的icon供我们使用&#xff0c;但是我们假如需要用自己的icon时候&#xff0c;我们可以搞一个icon自定义组件&#xff1b; 先把icons文件放到src下&#xff1b; 再新建一个SvgIcon组件&#xff1b; index.vue <template><svg class"…

【Linux】指令提权-sudo

Hello everybody&#xff0c;新年快乐&#xff01;哈哈&#xff01;今天打算给大家讲讲指令提权的相关知识&#xff0c;虽然内容不多&#xff0c;但有时却很有用。在我们学习过权限&#xff0c;vim后就可以学习指令提权啦&#xff0c;没看过的宝子们建议先去看一看我之前的文章…

【数据存储+多任务爬虫】

数据存储 peewee模块 第三方模块&#xff0c;也需要在cmd中安装。 from peewee import *db MySQLDatabase("spider",host"127.0.0.1",port3306,userroot,password123456 )# 类》表 class Person(Model):name CharField(max_length20) # 类型/约束bi…

C# WinForm开发系列 - DataGridView

原文地址&#xff1a;https://www.cnblogs.com/peterzb/archive/2009/05/29/1491891.html 1.DataGridView实现课程表 testcontrol.rar 2.DataGridView二维表头及单元格合并 DataGridView单元格合并和二维表头.rar myMultiColHeaderDgv.rar 3.DataGridView单元格显示GIF图片 …

第70讲axios后端请求工具类封装

axios工具类封装&#xff1a; // 引入axios import axios from axios;// 创建axios实例 const httpService axios.create({// url前缀-http:xxx.xxx// baseURL: process.env.BASE_API, // 需自定义baseURL:http://localhost:80/,// 请求超时时间timeout: 3000 // 需自定义 })…