玩转(坏)服务器【一】
一、背景
很开心这回又能拿到一个服务器的ip和密码了,让我好好玩玩。我本人肯定是没有这个条件等,比较麻烦还要费钱。之前在维护一个项目时,经常对测试环境需要更新jar包,只是进行了这个操作。现在是玩另外一个项目时,发现做向量化pgsql少了个拓展vector,于是向寻理说明帮忙下载。然后捏,我就拿到一个ip和密码自己下载啦!
由于我还没有下载过东西在服务器上,秉持着小心下载的原则,迟迟还没开始。龙哥经过喊住了他,很好的实干派,比我还实干,在他面前我真说不上实干哈哈哈。直接问ai开始复制执行,我担心这语句是什么意思,不会有什么问题吗?后面结果几步之后处处报错,显示事实确实如此。结果下班人就跑了好吧好吧~~
想要看如何下载的可以从第二部分第五条开始~
二、经过
我来“追根溯源”一下,现在看来,起因是下载时问豆包,没有直接看清,如果有pgsql跳过的过程,又给下载了一遍pg,那后面启动肯定有问题呀,端口会冲突,但是当时没有意识到这一点。不过我在他复制命令时,就意识到不对,这好像是下载pg呀。我就去问deepseek会有什么问题。害,龙哥当时就说不同版本的那就更新呗,同一版本的那几两个呗....没什么话可说,没事,玩坏了两个人担责。
1、总之下载两条语句是:
# 1. 安装官方PG源(以14版本为例)
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# 2. 安装PG服务和客户端
sudo yum install -y postgresql14-server postgresql14-client
2、报错开始
# 3. 初始化PG(仅第一次装需要)
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
# 4. 启动并设置开机自启
sudo systemctl start postgresql-14
sudo systemctl enable postgresql-14
start时候出现问题,报错:
“[root@minio4 /]# systemctl status postgresql-14.service ● postgresql-14.service - PostgreSQL 14 database server Loaded: loaded (/usr/lib/systemd/system/postgresql-14.service; disabled; vendor preset: disabled) Active: failed (Result: exit-code) since 三 2026-01-07 18:47:40 CST; 32s ago Docs: https://www.postgresql.org/docs/14/static/ Process: 1850 ExecStart=/usr/pgsql-14/bin/postmaster -D ${PGDATA} (code=exited, status=1/FAILURE) Process: 1844 ExecStartPre=/usr/pgsql-14/bin/postgresql-14-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) Main PID: 1850 (code=exited, status=1/FAILURE) 1月 07 18:47:40 minio4 systemd[1]: Starting PostgreSQL 14 database server... 1月 07 18:47:40 minio4 postmaster[1850]: 2026-01-07 18:47:40.840 CST [1850] 日志: 日志输出重定向到日志收集进程 1月 07 18:47:40 minio4 postmaster[1850]: 2026-01-07 18:47:40.840 CST [1850] 提示: 后续的日志输出将出现在目录 "log"中. 1月 07 18:47:40 minio4 systemd[1]: postgresql-14.service: main process exited, code=exited, status=1/FAILURE 1月 07 18:47:40 minio4 systemd[1]: Failed to start PostgreSQL 14 database server. 1月 07 18:47:40 minio4 systemd[1]: Unit postgresql-14.service entered failed state. 1月 07 18:47:40 minio4 systemd[1]: postgresql-14.service failed.”运行
重点就是avtive failed,现在看来就是端口冲突。
但是L哥说直接问ai,没有想要排查的意思,ai判断也不准确,就像是医术不精的医生,对着医书看头晕了,那得做个脑部ct,,,。
继续报错继续问...其实我已经感觉问题不在这里,不能跟着ai,只能越错越多了,按照我以往的许多失败经验。自己理解才是最重要的。



报各种错,,,,
3、自己开始整理
其实事到如今,问题已经很多了。开始慢慢整理。自己重新来才是对的。不过刚刚那个过程就像,游泳站在岸边,是看多个教程穿好游泳圈下水,还是被旁边的大佬一腿踢下去呛好几口。迟早要呛的,迟早会报错的,基础问题的报错我还能知道怎么解决,这样我也知道报错问题不大。
# 1. 查操作系统版本(知道是Ubuntu/CentOS/其他)
cat /etc/os-release
# 2.查看pg版本
# 方法1:通过psql客户端查版本(推荐)
psql --version
# 或简写
psql -V
注意是psql,而不是pgsql,我一开始就输错了。后面都是我今天开始整理的步骤了,昨天坐太久了,于是直接回去了后面。
# 3.查看你已下载的所有包
yum list installed

有两个pg,后面又摸索,systemd 服务文件标准位置/usr/lib/systemd/system/ - 系统包管理器安装的服务文件(默认、不可更改)。
cd /usr/lib/systemd/system/ #也可以查看下载

同理也能看出。
补充:psql客户端属于客户端包(postgresql14)。客户端包的二进制文件通常安装在标准路径
/usr/bin下。
这样,所以才能直接在/root目录下直接运行psql等命令。
# 4.查看日志验证
根据服务文件,环境变量
PGDATA很可能设置为/var/lib/pgsql/14/data(这是RHEL/CentOS上PostgreSQL 14的默认数据目录)
结果不出所料

ok,现在已经是多方验证了,那么才开始重新整理不要这个新的,然后下载我需要的拓展。
4、修复开始
操作一般都是先备份数据,停止服务,然后卸载相关包,然后也可以查看相关是否有依赖。但是我是新下载的,不会有什么数据。
#查看下载的包
yum list installed | grep postgresql14
#删除相关的包,这个就是直接删除所有匹配。
yum remove -y "postgresql14*"
#也可以一个一个来
# 卸载PG14的核心包(复制上面查到的包名,比如下面这些)
sudo yum remove -y postgresql14 postgresql14-server postgresql14-devel postgresql14-libs

还可以删掉一些残留的数据文件
# 1. 删除数据目录(确认无数据后)
rm -rf /var/lib/pgsql/14/# 2. 删除配置文件
rm -rf /etc/systemd/system/postgresql-14.service.d/ 2>/dev/null# 3. 清理日志文件
rm -rf /var/log/postgresql/postgresql-14*.log 2>/dev/null
rm -rf /var/lib/pgsql/14/data/log/ 2>/dev/null# 4. 删除旧的服务文件(可能已被卸载删除)
rm -f /usr/lib/systemd/system/postgresql-14.service 2>/dev/null
ok,现在舒服了,干净了。跟我什么都没干过一样。验证一下。
# 检查 PostgreSQL 13 是否受影响 ls /usr/pgsql-13/ # 应该还存在 # 如果需要切换到 PostgreSQL 13 systemctl status postgresql-13.service# 还可以用 psql -V 来判断
5、下载拓展
好的!!!!!!!!!!太棒啦!我们现在重新开始,我想要下载pg的拓展pgVector。这是我的情况:CentOS 7.9 + PostgreSQL 13.11。
5.1如下
因为我知道这个一直启动,所以就不进行操作了。

5.2安装编译工具和 PG13 开发包
pgvector 是源码安装,需要 “编译器 + PG13 开发包 + git”,执行以下命令:
# 先清理yum缓存(避免源的问题)
sudo yum clean all && sudo yum makecache
# 安装依赖包
sudo yum install -y postgresql13-devel gcc make git
- 含义:
yum clean all:清空 yum 旧缓存;yum makecache:生成新缓存(修复之前的源问题);postgresql13-devel:PG13 的 “开发包”(包含编译扩展需要的头文件、配置工具);gcc:Linux 下的 C 语言编译器(pgvector 是 C 写的,需要编译);make:编译管理工具(自动执行编译步骤);git:代码下载工具(用来拉取 pgvector 源码);
- 效果:
- 执行后 yum 会自动下载并安装这些工具,最后显示
Complete!代表安装成功; - 如果提示 “已安装”,说明之前装过,不用管,继续下一步。
- 执行后 yum 会自动下载并安装这些工具,最后显示
但是出师不利,估计是昨天的问题!!

查看显示yum repolist all 为空,repolist:0。想着昨天最后是删除并进行备份,写入时卡住后面不了了之,今天继续。
5.3恢复备份
没什么效果的事情,但是还是想试一下,后面果然显示源还是失效的。
# 把bak里的旧源文件移回原目录
sudo mv /etc/yum.repos.d/bak/*.repo /etc/yum.repos.d/
# 尝试启用旧源(把enabled=0改成enabled=1)
sudo sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/*.repo
# 生成缓存
sudo yum clean all && sudo yum makecache

于是又给他移回去了。
# 把/etc/yum.repos.d/里的旧.repo文件移回bak文件夹
sudo mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
5.4下载新的阿里云源
第一步:用 vi 创建 CentOS-Base.repo(核心源)
执行这条命令打开 vi 编辑器(创建新文件):
vi /etc/yum.repos.d/CentOS-Base.repo
- 执行后会进入 vi 的空白界面,按下面的步骤操作:
- 按键盘上的
i键(进入编辑模式,此时 vi 左下角会显示-- INSERT --,如果没显示,多按一次i); - 复制粘贴下面的全部内容(直接右键粘贴就行):
[base] name=CentOS-7 - Base - mirrors.aliyun.com baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/os/$basearch/ gpgcheck=1 gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7 enabled=1 [updates] name=CentOS-7 - Updates - mirrors.aliyun.com baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/updates/$basearch/ gpgcheck=1 gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7 enabled=1 [extras] name=CentOS-7 - Extras - mirrors.aliyun.com baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/extras/$basearch/ gpgcheck=1 gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7 enabled=1- 保存并退出 vi:
- 先按
Esc键(退出编辑模式,左下角的-- INSERT --会消失); - 输入
:wq(冒号 + w+q,代表 “保存并退出”); - 按回车键确认,回到命令行。
- 先按
- 按键盘上的
第二步:用 vi 创建 epel.repo(补充源)
vi /etc/yum.repos.d/epel.repo
- 操作步骤和上面一样:
- 按
i进入编辑模式; - 粘贴下面的内容:
[epel] name=Extra Packages for Enterprise Linux 7 - $basearch baseurl=https://mirrors.aliyun.com/epel-7/$basearch/ failovermethod=priority enabled=1 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-7- 按
Esc→输入:wq→按回车保存退出。
- 按
昨天就是在编辑的时候,按esc没反应,输入不了“:wq”。现在想来,
- 如果粘贴内容时乱码 / 没反应:先确认按了
i进入编辑模式,再右键粘贴; - 如果输错内容想重来:按
Esc→输入:q!→回车(不保存退出),重新执行 vi 命令;
5.5EPEL 源地址失效

真是令人沮丧啊,但是我这人比较倔,脾气也好,一般不发脾气~~/欣慰自得~
暂时这篇就到这里啦,太多也看不下去,欲知后事如何,请看下篇,求个关注吧~~呜呜
【服务器二】下载拓展成功-CSDN博客










