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

在这里插入图片描述

博客原文

实验环境信息

  • 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 RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Sat 2024-01-27 10:40:44 UTC; 51s ago
   Main PID: 6952 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 4557)
     Memory: 0B
     CGroup: /system.slice/postgresql.service

Jan 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
  • 26
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
编译安装PostgreSQL的步骤如下: 1. 首先,为PostgreSQL创建一个目录,例如/home/postgres,并确保该目录的所有者是postgres用户,组是postgres组。可以使用以下命令完成此操作: ``` mkdir /home/postgres chown postgres /home/postgres chgrp postgres /home/postgres ``` 2. 下载PostgreSQL的源代码压缩和对应的MD5校验文件。可以使用以下命令下载: ``` wget https://ftp.postgresql.org/pub/source/v${PG_VERSION_NUM}/postgresql-${PG_VERSION_NUM}.tar.bz2 wget https://ftp.postgresql.org/pub/source/v${PG_VERSION_NUM}/postgresql-${PG_VERSION_NUM}.tar.bz2.md5 ``` 3. 进入下载的源代码目录,并执行编译安装。假设源代码解压后的目录是/root/postgresql-9.2.24(根据实际情况修改),可以使用以下命令完成编译安装: ``` cd /root/postgresql-9.2.24/contrib/pageinspect make make install ``` 这些命令将编译安装Pageinspect扩展,它是PostgreSQL的一个附加模块。安装过程将创建必要的目录和文件,并将Pageinspect扩展安装到适当的位置。 请注意,上述步骤中的路径和本号可能需要根据实际情况进行修改。此外,在执行编译安装之前,确保已经安装了相关的构建工具和依赖项。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [一、PostgreSQL编译安装](https://blog.csdn.net/yuanyuanstudent/article/details/128239127)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [PostgreSQL 编译安装通用步骤](https://blog.csdn.net/qiuchenjun/article/details/131356450)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M·K·T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值