1. 为什么选择二进制离线安装?聊聊我的踩坑经历
大家好,我是老张,一个在运维和数据库领域摸爬滚打了十多年的老家伙。今天咱们不聊那些云里雾里的概念,就实实在在地解决一个很多运维兄弟都头疼的问题:在完全没外网的CentOS 7服务器上,怎么把Mariadb数据库给稳稳当当地装起来。
你可能要问了,为啥非得用二进制包离线安装?直接用系统自带的yum仓库或者下载rpm包不行吗?这事儿我踩过坑,而且不止一次。在那些金融、政企或者涉密项目的内网环境里,服务器就像一座孤岛,别说连外网了,连内部软件源都可能没有。这时候,yum安装就成了无米之炊。用rpm包安装呢?听起来不错,但依赖问题能把你搞疯。一个mariadb-server的rpm包,可能依赖几十个其他的库,比如libaio、numactl、perl等等。你辛辛苦苦找齐了所有依赖包,结果安装时还可能因为版本冲突报错,那感觉真是欲哭无泪。
所以,我这些年在这种“纯净”内网环境里,最偏爱、也最推荐的就是二进制包安装。你可以把它理解为一个“绿色免安装版”的软件。官方已经把Mariadb所有需要的东西,包括主程序、依赖库、工具脚本,全都打包好放在一个压缩包里了。你只需要把它下载下来,解压到合适的目录,做一点简单的配置,就能直接运行。整个过程干净利落,不污染系统目录,卸载也方便(直接删文件夹就行),最关键的是,它几乎不依赖系统已有的任何特定库,完美避开了依赖地狱。
我记得有一次给一个客户部署,他们的服务器系统版本很老,glibc库的版本也低,用其他方法死活装不上。最后就是靠二进制包搞定的,因为二进制包里自带了兼容的运行时库。从那以后,但凡遇到离线环境,我的第一选择就是它。接下来,我就手把手带你走一遍完整的流程,从准备到验收,保证你一次成功。
2. 战前准备:兵马未动,粮草先行
在开始动手之前,咱们得把“战场”打扫干净,把需要的“粮草”备齐。这一步做得好,后面的安装就能顺风顺水,避免很多莫名其妙的错误。
2.1 环境检查与清理
首先,登录你的CentOS 7服务器。咱们先看看系统里有没有已经存在的MySQL或Mariadb,如果有,得先处理掉,避免端口冲突、服务冲突。
打开终端,输入以下命令检查:
# 检查是否已安装mysql或mariadb的rpm包
rpm -qa | grep -E “mysql|mariadb”
# 检查是否有相关的进程在运行
ps -ef | grep -E “mysqld|mariadb”
如果发现有旧的安装包,比如 mariadb-libs-5.5.68 之类的,我建议你卸载掉。特别是 mariadb-libs,它有时候会和我们要新装的版本冲突。卸载命令是 yum remove 包名。不过,在离线环境,如果yum不能用,你可能需要用 rpm -e --nodeps 包名 来强制卸载,但操作要小心,别把系统依赖的其他重要库给删了。
接着,检查关键端口3306是否被占用:
netstat -tlnp | grep 3306
如果被其他程序占了,要么停掉那个程序,要么我们后面给Mariadb换一个端口。
2.2 获取正确的二进制安装包
这是最关键的一步,包下错了,后面全白搭。你需要一台能上网的电脑(比如你自己的开发机),去Mariadb的官方下载站。
我习惯用这个地址:https://downloads.mariadb.org/。进去之后,找到 “MariaDB Server” 部分,选择你需要的版本。对于CentOS 7,我建议选择10.3.x或10.5.x的长期支持版本,比较稳定。比如 10.3.38 或 10.5.20。
重点来了:一定要选对文件类型。在文件列表里,你会看到很多种包,比如源码包(source)、rpm包、deb包。我们要找的是 Linux通用二进制包,它的名字通常类似于: mariadb-10.3.38-linux-systemd-x86_64.tar.gz 或者 mariadb-10.5.20-linux-x86_64.tar.gz
注意关键词 linux-systemd 或 linux,以及 x86_64(64位系统)。systemd 版本集成了对CentOS 7 systemd服务管理的更好支持,推荐下载这个。把下载好的这个 .tar.gz 压缩包,通过U盘、内网FTP或者任何你能想到的方式,传到那台离线的CentOS 7服务器上,比如放到 /opt 或 /root 目录下。

4900

被折叠的 条评论
为什么被折叠?



