正确清除CentOS升级留下的老版本内核

本文介绍了如何在Linux系统中管理内核版本,包括查看已安装的内核版本、删除不需要的老版本内核等内容。强调了操作时区分版本的重要性。

1、查看已安装的老版本内核,执行rpm -q kernel,执行结果如下图:

查看CentOS已安装的内核


2、删除掉不再需要的老版本内核,执行rpm -e kernel-2.6.18-128.e15

 

3、补充说明,千万不要搞错版本,说实在话,LINUX内核的版本文件名看起来很难区分,如果执行删除了新版本内核不知道会有什么发生,反正我是没有试过。:)

### 问题分析 错误代码 `ERROR 2002 (HY000)` 表明客户端无法通过 Unix 套接字文件与本地 MySQL 服务建立连接。此问题通常由以下几个原因之一引起:MySQL 服务未运行、套接字文件路径不匹配或权限设置不当[^1]。此外,在安装过程中如果 `mysql-community.repo` 配置文件存在问题,则可能导致后续依赖项缺失或配置异常,从而间接影响 MySQL 的正常启动。 --- ### 可能的原因及解决方案 #### 原因一:MySQL 服务未启动 如果 MySQL 服务尚未启动或者未能正确初始化,那么即使客户端指定了正确的套接字路径也无法完成连接请求。 ##### 解决方法: 确认 MySQL 是否正在运行,并尝试手动激活它。 ```bash systemctl status mysqld ``` 若显示停止状态则应执行以下命令来开启服务并设定开机自启功能: ```bash systemctl start mysqld systemctl enable mysqld ``` #### 原因二:Unix Socket 路径不符 默认情况下,CentOS 上的 MySQL 实例会监听位于 `/var/lib/mysql/mysql.sock` 处的一个特殊类型的 IPC 文件用于处理来自同一主机内部进程间的通信需求。然而有时出于安全考量或者其他因素考虑更改了此项位置却忘记同步通知关联组件如 PHP 等脚本解释引擎造成脱节现象发生。 ##### 解决方法: 检查实际使用的 socket 地址是否一致。可以通过查看 my.cnf 中的相关参数得知确切值: ```bash grep -ri 'socket' /etc/my.cnf* ``` 假设输出结果指向另一个目录比如 `/tmp/mysql.sock` ,那就需要相应修改 php.ini 或者其他调用端程序里的对应部分使之相吻合才行。 另外一种常见情形是尽管两者都设为了相同的目标可是因为 SELinux 规则限制使得访问遭到拒绝。此时可暂时关闭 selinux 测试效果如何: ```bash setenforce 0 ``` 长期解决办法则是添加合适的布尔值开关允许必要的交互操作保持安全性的同时满足业务需求。 #### 原因三:mysqld 初始化失败遗留临时文件阻碍重建过程 偶尔会出现由于先前实例崩溃留下残余锁记录阻止新的 session 创建成功的情况。 ##### 解决方法: 清除有的 sock 文件再重启服务试试看能否恢复正常运作模式。 ```bash rm -rf /var/lib/mysql/*.pid rm -rf /var/lib/mysql/*.sock systemctl restart mysqld ``` #### 关于之前的 mysql-community.repo 配置文件问题回顾 从前述描述可知当时已经按照指引完成了相关步骤包括但不限于获取最新版本号对应的 repository package 并妥善安置好之后才得以继续前进至下一步骤即安装备份工具等等附加特性之上。不过值得注意的一点在于每当升级操作系统内核或者是切换主要发行版分支的时候都有必要重新审视一遍现存的所有第三方源列表以防万一出现兼容性隐患进而引发连锁反应损害整个系统的稳定性表现出来表现为各种奇怪的症状其中之一就可能是今天所讨论的主题——无法经由指定途径抵达目的地也就是所谓的 "can't connect..." 报错提示信息啦! 因此建议定期核查各个 active repo 的健康状况确保它们始终维持在一个合理范围内既不会过期也不会互相冲突彼此排斥最终达到最优解的目的地。 --- ### 总结 综合以上几点可以看出解决 ERROR 2002 主要是围绕着保障服务本身处于活跃在线状态以及协调两端之间关于具体联络方式达成共识这两个方面展开工作的。同时也要记得留意环境变量的影响范围避免不必要的麻烦缠身哦~ ```python import subprocess result = subprocess.run(['systemctl', 'status', 'mysqld'], stdout=subprocess.PIPE) if b'inactive' in result.stdout or b'failed' in result.stdout: print("Service is not running. Attempting to start...") subprocess.call(['systemctl', 'start', 'mysqld']) else: print("Service appears healthy.") ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值