
之前在腾讯云服务器上安装了一个MySQL数据库,前两天安装了一个小皮助手(PHPStudy),然后又因为版本低卸载了,结果把我的 mysql 命令给覆盖了。

然后我在服务器上就无法通过 mysql 命令行去操作数据库了。

刚开始我输入mysql提示的时,我就想到了小皮助手的问题,因为之前遇到过。当时我第一反应想着,不会把我MySQL给卸载了吧,虽然服务器快到期了,但是里面数据还没备份呢,于是我通过 systemctl status mysqld 看了看后台进程还在。

而且端口还正常监听。

所以明白问题不大,然后我使用 mysqldump 将几个常用的database导出放到了新的云服务器上。然后我就开始尝试一下,如果单纯的安装一个 mysql client命令,需要怎么安装。结果就遇到了很多问题,当然也没有安装成功,最后从新服务器上copy了一个 mysql 命令,就完美解决了这个问题。

如图,可以连接到mysql,再将其放入到 /usr/bin 下就解决了这个问题。在我尝试安装 mysql 客户端的过程中,遇到了很多问题,在查找资料解决的过程中也学到了一些新的知识。
在之前使用centos的时候,通过配置yum仓库,来安装各种软件,通过 yum repolist 我们可以看到当前使用的仓库。

正常情况下,我们在腾讯云服务器的 OpenCloudOS 系统下安装MySQL,是通过 AppStream 这个仓库来下载完成安装的,在新服务器上也验证了这一点。

通过一个 yum install mysql 命令就完成了MySQL的安装。但是我在这台服务器上安装死活不行。安装MySQL失败:

使用其他的yum源也失败。

后来我甚至尝试安装MySQL5.7,但是在安装过程中也是失败了。混元提示我:是不是要通过yum模块化,关闭默认的MySQL8。
确实第一次听说模块化,后来查了一下资料:
在 OpenCloudOS 和其他基于 RHEL 8/9 的系统中(如 CentOS、AlmaLinux),yum module(或 dnf module)是一个重要的软件管理机制,它通过模块化(Modular)仓库提供不同版本的软件。
然后执行 yum module list mysql 看了一下默认的MySQL版本,是8.0。

通过 yum module list 可以查看系统上软件版本。

我们可以看到Nginx有多个版本可安装,1.14后面有个d,表示默认,所以我们使用yum安装软件的时候,优先默认安装的事1.14版本。除此之外,还有e已启用,x已禁用,i已安装三个标识。

如果我们想要安装其他版本,就使用 yum module install [Name]:[Stream] 指定安装版本。

除此之外,还有常见命令:
因为有两个系统、配置一样的服务器作比较,我个人觉得是旧服务器出现了问题。使用相同的yum配置。执行 yum list available | grep mysql 查看可用软件。
新服务器:

老服务器:

老服务器少了一个mysql的安装包,后来也查看了其他的软件,情况也一样,执行安装结果都会提示过滤掉相关结果。

期间也多次通过 yum clean all 清理和重构元数据库,皆无效。
所以最后放弃了,早上还是信心满满,搞了一天还是没搞明白,最后还是通过copy了一个mysql客户端解决了这个问题。今天算是一个失败的操作案例,但是也学到了关于 yum module 的相关知识,最后有能解决这个问题请 help me...

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。