玩转(坏)服务器【一】

一、背景

很开心这回又能拿到一个服务器的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博客

相关推荐
qq_3168377510 小时前
docker 运行 cn_clip
运维·docker·容器
_叶小格_10 小时前
cp、scp、rsync命令详解
linux·运维·服务器·ubuntu·centos·运维开发
sunshine88510 小时前
合规性管理:财务安全与业务连续性的双重保障
大数据·运维·人工智能
凯子坚持 c10 小时前
Qt常用控件指南(7)
服务器·数据库·qt
mango_mangojuice11 小时前
Linux学习笔记 1.19
linux·服务器·数据库·笔记·学习
i建模11 小时前
linux断点续传下载文件
linux·运维·服务器
执笔论英雄11 小时前
【RL]分离部署与共置模式详解
服务器·网络·windows
拍客圈11 小时前
Discuz CC 防护规则
服务器·网络·安全
小天源11 小时前
CentOS 7介绍及其下载
linux·运维·ubuntu·centos·麒麟·windows11·windows10
闫记康11 小时前
linux配置ssh
linux·运维·服务器·学习·ssh