PostgreSql-Install


PostgreSQL是一个强大的 开源对象关系数据库系统,它使用并扩展了SQL语言,并结合了许多功能,可以安全地存储和扩展最复杂的数据工作负载。

一、源代码下载

  1. PostgreSql官方网址,进入Download页面,此处选择的是下边的File Browser(文件浏览)进入下载页面后选择Source进行源码选择对应版本进行下载。[此处选择v14.9版本]
    在这里插入图片描述

    此处选择 bz2 or gz 为后缀的安装包进行下载,任选一个即可[此处选择gz压缩包]

  2. 下载到本地操作系统的任意位置,之后使用SFTP上传到Linux服务器即可。
    在这里插入图片描述

二、操作系统配置

  1. 管理用户的创建
    root根用户权限较大,不适合管理数据库,此处建议非root用户管理数据库,因此可以创建单独用户和组进行区分管理。
groupadd postgres 添加组
useradd -g postgres postgres  创建用户并划分组
passwd postgres 设置用户密码
  1. 安装依赖包
yum groupinstall -y "Development Tools" "Legacy UNIX Compatibility"

在这里插入图片描述

groupinstall: yum 命令,用于安装指定的软件包组。

“Development Tools”: 软件包组名称,通常包含软件开发的工具和库,比如编译器、调试器等。

“Legacy UNIX Compatibility”: 软件包组的名称,包含用于提供与传统 UNIX 系统兼容性的工具和库。

yum install -y bison flex readline* zlib-devel gcc* gmake

此处安装依赖可能会报错,原因是镜像中找不到对应的依赖,我这里把原来的各种国内源镜像替换回默认国外镜像后执行yum clean all & yum makecache后重新安装就没问题了。
在这里插入图片描述

  1. 创建软件安装目录和数据存储目录
mkdir -p /usr/local/pg12
mkdir -p /pgdata/12/data
chown -R postgres. /pgdata
chown -R postgres. /usr/local/pg12
chmod 700 /pgdata/12/data -R

此处的postgres对应的是用户名,文件夹无法创建的可以使用root用户权限sudo进行创建。

在这里插入图片描述
4. 操作系统参数设置

说在前边,个人使用时可以不必设置这些参数。

pg和oracle类似需要调一些内核参数,因为是多进程,对于内核参数的要求较多;

sudo vim /etc/sysctl.conf 

kernel.shmmax = 68719476736 共享内存段的最大值,单位是字节。 64GB
kernel.shmall = 4294967296 系统中所有共享内存段的总共享内存页数 大约是 16TB
kernel.shmmni = 4096 系统中最大的共享内存段数目。
kernel.sem = 50100 64128000 50100 1280 信号量的值,格式为 semmsl semmns semopm semmni
fs.file-max = 7672460 系统中最大文件句柄数。
net.ipv4.ip_local_port_range = 9000 65000 系统分配给本地 TCP/UDP 端口的范围。
net.core.rmem_default = 1048576 接收套接字缓冲区的默认大小。
net.core.rmem_max = 4194304 接收套接字缓冲区的最大大小。
net.core.wmem_default = 262144 发送套接字缓冲区的默认大小。
net.core.wmem_max = 1048576 发送套接字缓冲区的最大大小。

在这里插入图片描述

这些参数可以根据实际情况进行修改!

限制参数修改:

该文件用于设置用户的资源限制。在这里,针对所有用户设置了文件描述符数量、进程数量、栈大小和内存锁定等限制。

sudo vim /etc/security/limits.conf

* soft   nofile    131072 文件描述符的软限制
* hard   nofile    131072 文件描述符的硬限制
* soft   nproc    131072 进程数量的软限制
* hard   nproc    131072 进程数量的硬限制
* soft   stack    unlimited 栈大小的软限制
* hard   stack   unlimited 栈大小的硬限制
* hard   memlock    50000000 内存锁定的硬限制
* soft   memlock    50000000 内存锁定的软限制

软限制是指进程可以自由地增加或减少的资源限制。当进程达到软限制时,系统会向进程发送一个警告信号,但是进程仍然可以继续使用更多的资源,直到达到硬限制。

三、编译安装

可以提前创建文件夹指定位置安装(本文在/opt/module/postgresql目录):

  1. 解压缩到指定目录
tar -zxvf postgresql-14.9.tar.gz -C /opt/module
  1. 进入解压的指定目录下执行如下命令
./configure --prefix=/usr/local/pg12 --with-pgport=5432
参数名含义
prefix软件目录也就是安装目录
with-perl编译时添加该参数才能够使用 perl 语法的 PL/Perl 过程语言写自定义函数,需要提前安装好相关的 perl 开发包:libperl-dev
with-python编译时添加该参数才能够使用 python 语法的 PL/Perl 过程语言写自定义函数,需要提前安装好相关的 python 开发包:python-dev
with-blocksize & with-wal-blocksize默认情况下 PG 数据库的数据页大小为 8KB,若数据库用来做数仓业务,可在编译时将数据页进行调整,以提高磁盘 IO
  1. 编译安装
#全部可用功能编译
gmake world
#把所有编译好的进行安装(建目录+拷贝)
gmake install -world

在这里插入图片描述
4. 配置环境变量

su postgres
cd ~
vim .bash_profile

export PGDATA=/pgdata/12/data
export LANG=en_US.utf8
export PGHOME=/usr/local/pg12
export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
export DATE=`date +"%Y%m%d%H%M"`
export PATH=$PGHOME/bin:$PATH:.
export MANPATH=$PGHOME/share/man:$MANPATH
export PGUSER=postgres

source .bash_profile

此处主要为配置环境变量,不一定需要将修改存放到bash_profile中,存放到任意一个shell可加载的环境变量文件中即可。

注意最后的PGUSER为我们定义的用户

能成功显示版本信息即是配置成功。
在这里插入图片描述
5. 简易初始化数据

initdb -D /pgdata/12/data   此处为前边创建的数据目录

在这里插入图片描述

四、启动数据库

1 创建启动日志/pgdata/pglog/logs/start.log (可以自定义)
在这里插入图片描述
2 启动数据库服务,并使用日志文件

pg_ctl -D /pgdata/12/data/ -l /pgdata/pglog/logs/start.log start

在这里插入图片描述

3 数据库client
第一次安装仅允许本地socket连接,一般socket再/tmp目录下,是个隐藏文件,直接输入psql,输入密码即可进入命令行,默认进入系统postgres这个库中;

4 参数修改
PostgreSQL 数据目录中,会自动生成 pg_hba.conf 文件,该文件是一个黑名单访问控制文件,可以控制允许哪些 IP 地址的机器访问数据库。默认,不允许远程访问数据,所以安装完成后需要配置下。

su postgres
cd $PGDATA
vim pg_hba.conf 

在这里插入图片描述
如果允许任何用户远程连接数据库,连接时需要提供密码,在最后一行添加

host    all             all             0/0                     md5

此外由于默认只监听本地,还需要配置linstener才能监听到,在数据目录中的 postgresql.cnf 中,可以找到如下内容:
在这里插入图片描述
其中,参数 listen_addresses 表示监听的 IP 地址,默认是在 localhost/127.0.0.1 处监听,这样会导致远程主机无法访问数据库,如果需要远程访问,需要将其设置为实际网络地址,设置为 * 表示监听所有地址,该参数修改重启生效。

配置完之后便可开启远程连接

在这里插入图片描述

五、相关命令

  • 查看版本信息: select version();
  • 重启数据库服务: pg_ctl restart -mf
  • 在这里插入图片描述
  • 25
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Aimyon_36

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

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

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

打赏作者

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

抵扣说明:

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

余额充值