如何在linux服务器部署pgsql,安全版以及可能出现各种问题解决(保姆级教程)


准备

提示:市面上那些在linux服务器部署pgsql好多都是水货,效果良莠不齐,笔者花了两天时间成功部署了pgsql,记录下方便自己以后部署,也方便其他有需要的码农

服务器环境:

CentOS Linux release 7.9.2009 (Core)

postgresql版本

postgresql-15.0

坚决不要通过镜像下载,道路千万条,安全第一条,镜像源不一定安全,自己老老实实去官网下载就好了,下面是官网的链接:https://www.postgresql.org/ftp/source/
点击进去下载最新版的后缀格式为.tar.gz那个压缩包文件就好。
我的话下载的是v-15.0文件下的postgresql-15.0.tar.gz


一、安装

1.将压缩包上传到服务器;

这一步自己用什么管理工具,就用它上传上去就行了,就不过多阐述了,笔者用的是winscp上传的。
上传的位置最好是服务器包管理位置,一般都是/usr/local/src下面,这是约定俗成的包管理位置。

2.解压压缩包;

这一步需要注意的是,用户权限问题,你可能解压报错,记得登录服务的用户一定要是root用户,
然后使用tar -zxvf ./postgresql-15.0.tar.gz解压压缩包,这里还会遇到的一个问题是,粗心没有进入到src目录下
所以整体步骤是

cd /usr/local/src
tar -zxvf ./postgresql-15.0.tar.gz

3.观察src目录下是否有postgresql-15.0文件生成,如果生成则代表解压成功,如果没有请仔细对照上述步骤。观察方法有两种,一种在linux终端在src目录下输入ls指令查看,还有一种用管理工具查看,像我的话就是在winscp上查看,推荐第一种
在这里插入图片描述

这是我的服务器下的效果图,可以看到src目录下不仅有了压缩包还有解压文件;

4.查看下载指示文件;

进入postgresql-15.0文件下,指令是

cd postgresql-15.0
ls

查看目录下文件,可以用肉眼看到有一个INSTALL的文件,

vim INSTALL

查看该文件,这步很重要,这个文件是官网给的安装步骤
在这里插入图片描述
可以看到底下有安装指令提示,我们就老老实实按照他来的就行,把它那些命令复制下,退出这个页面指令是
按一下esc,然后输入:q!,表示不保存退出

5.创建管理用户,也就是在linux系统上创建用户注意我说的话是在linux上创建管理用户,用以下指令创建
sudo useradd+用户名
sudo passwd+密码
我们的话就是创建postgres用户来管理这个pgsql数据库,
那也就是sudo useradd postgres
密码也要设置好,以防万一,
如果设置完成后忘了密码删除用户指令

 userdel -r 用户名

验证自己是否设置使用指令
cut -d: -f1 /etc/passwd
来查看自己服务器下的用户,能找到postgres就行,代表你创建了这个用户;

6.创建pgsql文件夹;

在/usr/local目录下创建pgsql文件夹,用于存放PostgreSQL。

7.再一次跳回到/usr/local/src/postgresql-15.0目录下,运行./configure文件,为什么运行这文件是因为
这玩楞可以用于检测系统环境(比如检测是否有合适的编译器,是否存在本软件所需要的函数库等等)。
检测完后,configure程序还会帮助我们创建GNUmakefile或makefile文件,能够帮我们自动操作许多编译步骤的脚本文件。
指令如下

cd /usr/local/src/postgresql-15.0
./configure --prefix=/usr/local/pgsql 

目的是指定PostgreSQL安装在/usr/local/pgsql中。可以看到就是INSTALL里面的步骤。

8.再次查看/usr/local/src/postgresql-15.0目录下文件

ls

可以发现多了一些文件,这些都是执行./configure编译出来的,最主要的是有了一个GNUmakefile文件!
在这里插入图片描述
可以看到我的话是在第一排倒数第三个
有这个就很好办了

8.使用make指令编译;

如下:

make clean;make

稍等一会,编译时间可能有点小长,直到它出现离开目录的提示,有些版本的还会出现安装成功的提示,这些可能是英文可能是中文,看你安装的pgsql而定。

9.检验是否安装成功;

打开/usr/local/pgsql查看,可以发现已经装有东西了,指令如下:

cd /usr/local/pgsql
ls

10.建立用户管理;

在/usr/local/pgsql目录下创建data文件夹;

mkdir data

将管理data权限赋予给之前创建的postgres用户

chown postgres /usr/local/pgsql/data

二、配置环境变量

1.切换用户

指令如下:

su - postgres

提一嘴root切换用户不需要密码,普通用户切换用户需要密码,切换指令是

su - 用户名

2.修改配置文件

指令如下:

vi .bashrc

修改文件加入
在这里插入图片描述

就这些

PGHOME=/usr/local/pgsql
export PGHOME
PGDATA=$PGHOME/data
export PGDATA
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin
export PATH

按insert输入,写完后按esc,然后输入:wq表示保存退出

然后退出后输入

source  .bashrc

意思是重新生效配置文件


三、建立数据库

还是在postgres用户下执行哦!!!
1.输入指令

initdb

初始化数据库

2.启动数据库
指令是

pg_ctl start

另外附上其他数据库指令

重启:pg_ctl restart
关闭:pg_ctl stop

3.设置postgres这个用户的密码;
这里指的是设置数据库超级用户postgres密码
指令如下:

psql -U postgres
\password
\q

四、设置监听

1.修改/usr/local/pgsql/data下的pg_hba.conf配置文件,将IPv4 local connections下面的一行改为如下所示:(这里找的网图,自己的工作原因不方便展示,但网图效果一样)
在这里插入图片描述
打开pg_hba.conf的指令是

vi /usr/local/pgsql/data

在postgres用户下打开就行
找到截图内容部分修改成红线里面的样子就好
2.修改/usr/local/pgsql/data下的postgresql.conf配置文件,修改为如下所示:
在这里插入图片描述
这里网图有错误按我这样改
listen_address = ‘*’
port = 5432
表示开放端口5432
同时监听所有地址
大概在第六十行左右我如果没记错的话,如果成功请过来反馈下,一起进步
3.重启数据库
指令是上面我就已经说过了,就是这个

pg_ctl restart

最后的最后还有些话要说,建议不要用默认端口5432,容易被扫描到暴力破解,还有就是管理数据库的用户密码和数据库里用户密码不要一样否则也容易被破解,设置的密码一定要复杂。

总结

这样总体已经完成了,然后想要外部能连到数据库,记得开放相应端口,也就是5432端口,然后用nav12或其他连接时可能会报一个column xxx does not exist 的错误,解决这个方法就是用最新的nav16连接,请去官网下载。
另附强制删除数据库
数据库运维操作
不会也可以联系我,我有空一定帮忙,不足之处请指正,希望大家一起进步。

猜你喜欢

转载自blog.csdn.net/weixin_51759592/article/details/127357054