玩转(坏)服务器【一】

一、背景

很开心这回又能拿到一个服务器的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 repolist all 为空,repolist:0。想着昨天最后是删除并进行备份,写入时卡住后面不了了之,今天继续。

5.3恢复备份

没什么效果的事情,但是还是想试一下,后面果然显示源还是失效的。

bash 复制代码
# 把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 创建 epel.repo(补充源)
复制代码
vi /etc/yum.repos.d/epel.repo
  • 操作步骤和上面一样:
    1. i进入编辑模式;

    2. 粘贴下面的内容:

      [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

    3. Esc→输入:wq→按回车保存退出。

昨天就是在编辑的时候,按esc没反应,输入不了":wq"。现在想来,

  • 如果粘贴内容时乱码 / 没反应:先确认按了i进入编辑模式,再右键粘贴;
  • 如果输错内容想重来:按Esc→输入:q!→回车(不保存退出),重新执行 vi 命令;
5.5EPEL 源地址失效

真是令人沮丧啊,但是我这人比较倔,脾气也好,一般不发脾气~~/欣慰自得~

暂时这篇就到这里啦,太多也看不下去,欲知后事如何,请看下篇,求个关注吧~~呜呜

【服务器二】下载拓展成功-CSDN博客

相关推荐
Leinwin31 分钟前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
2401_8653825035 分钟前
信息化项目运维与运营的区别
运维·运营·信息化项目·政务信息化
漠北的哈士奇40 分钟前
VMware Workstation导入ova文件时出现闪退但是没有报错信息
运维·vmware·虚拟机·闪退·ova
如意.7591 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
运维小欣1 小时前
智能体选型实战指南
运维·人工智能
yy55271 小时前
Nginx 性能优化与监控
运维·nginx·性能优化
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ2 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
05大叔4 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络
安当加密4 小时前
无需改 PAM!轻量级 RADIUS + ASP身份认证系统 实现 Linux 登录双因子认证
linux·运维·服务器
dashizhi20154 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑