centos离线使用源码安装Postgre SQL

CentOS离线使用源码安装Postgre SQL

本文详细介绍如何从PostgreSQL官方网站下载源代码包,上传到服务器,解压、编译、配置、安装,创建用户组和数据库,初始化数据库,启动/关闭服务,修改密码以及开启远程访问的过程。

1源代码包获取

https://www.postgresql.org/ftp/source/

下文将以下载15.6版本的tar.gz为例。

2源码包上传服务器

将下载的源码上传至目标服务器,这里我上传到:/root/postgre_load,我们可以创建这个目录,然后上传到这个目录下。

mkdir -p /root/postgre_load

3解压源代码

cd /root/postgre_load
gunzip postgresql-15.6.tar.gz
tar -xf postgresql-15.6.tar
cd

4检查、编译、安装

进入解压的源代码目录,然后再该目录下执行configure

cd postgresql-14.5

安装目录:prefix=/root/software/postgresql15/

端口:15432

without-readline:如果你没有安装readline,并且也不打算安装readline,执行检查configure时,可以跳过。

#需要有readline
./configure --prefix=/root/software/postgresql15/ --with-pgport=15432

#跳过readline
./configure --prefix=/root/software/postgresql15/ --with-pgport=15432 --without-readline

备注:若没有readline,并且也没有跳过readline安装时,会报错,此时,需要安装readline,重新进行检查。

接下来,使用跳过readline,执行检查过一会儿,没有报错即可。

接下来执行编译和安装(编译的时间有点长)。

make
make install

执行完install以后,无报错即可。

5创建用户和组

用户组:postgres

groupadd postgres

用户:postgres1(自定义) 添加用户到用户组中:添加postgres1postgres

useradd -g postgres postgres1

6数据库初始化

创建数据库存储文件

mkdir -p /root/pgdata

为了防止后续操作中出现一些列权限问题,这里我们需要提前赋权:

chmod -R 777 /root/
chmod -R 777 /root/software/postgresql15/bin/

chown postgres1 /root/pgdata
chown postgres1 /root/software/postgresql15/bin/initdb

切换到用户postgres1

su - postgres

执行初始化命令

/root/software/postgresql15/bin/initdb -D /root/pgdata

至此,初始化完毕。

7启动关闭数据库

注意,启动关闭需要保证是在我们postgres用户之下,仔细看我们之前执行的一系列命令,可以发现前缀在rootpostgres1是不一样的。

切换到我们创建的postgres1用户下执行。

su - postgres1

启动数据库,我们可以启动之后通过ps命令查看服务是否已经启动。

/root/software/postgresql15/bin/pg_ctl -D /root/pgdata -l logfile start
grep sql

关闭数据库,关闭数据库之后,我们可以通过ps命令查看服务是否已经没了。

/root/software/postgresql15/bin/pg_ctl -D /root/pgdata -l logfile stop
ps -ef | grep sql

8修改数据库密码

首先保证pg数据库已经启动(防止前面已经关闭了)。

首先创建psql连接,这里需要在root用户下执行,否则会提示拒绝。(已创建,则跳过)。

ln -s /root/software/postgresql15/bin/psql /usr/bin/psql

创建连接以后,切回到pg数据库用户。

su - postgres_dky

查看数据库信息。

psql -l

可以看到我们有数据库postgres,所有者postgres1,现在我们登录postgres数据库。

# psql -U <username> -d <database> -h <hostname> -p <port>
psql -U postgres1 -d postgres

接下来,我们将postgres1用户的密码重置。

alter role postgres_dky with password 'postgres';

最后退出数据库:exit

exit

9开启远程访问

编辑postgresql.conf 需要切换至root用户,将listen_addresses的注释放开,并且localhost改为:*,同时端口注释也放开。

image

su root
cd /root/pgdata
vim postgresql.conf

编辑pg_hba.conf 修改pg_hba.conf 添加远程访问的认证方式,未尾添加:

host all all 0.0.0.0/0 md5

重启数据库

# start stop restart
/root/software/postgresql15/bin/pg_ctl -D /root/pgdata -l logfile restart

开放端口

如果你是普通的服务器则可以如下自己开启端口

#查看已开放的端口
firewall-cmd --list-ports

#开放
firewall-cmd --permanent --zone=public --add-port=15432/tcp

#重启防火墙
firewall-cmd --reload

如果你是阿里云服务器,则去阿里云上开放端口,同理腾讯云也一样,如果是自己公司内部的云服务器,则找你们对应的网管给你们开通端口权限。

附原文链接:https://blog.csdn.net/m0_37892044/article/details/136341524

实验
JSRUN前端笔记, 是针对前端工程师开放的一个笔记分享平台,是前端工程师记录重点、分享经验的一个笔记本。JSRUN前端采用的 MarkDown 语法 (极客专用语法), 这里属于IT工程师。