mysql系统级文件损坏修复

今天生成上的mysql突然报ERROR Can't find messagefile '/usr/share/errmsg.sys' 可能系统文件有损坏,进行排查后文件内容正常、权限正常、配置正常,最终使用重装mysql-community-common进行恢复

详细说明:

sudo yum reinstall mysql-community-common 只是重新安装 MySQL 的公共文件包,不会影响您的 MySQL 数据库数据

哪些文件会被覆盖:

bash 复制代码
# mysql-community-common 包包含的主要是共享文件:
- /usr/share/mysql/*                  # 共享文件
- /usr/share/errmsg.sys               # 错误消息文件
- /usr/share/mysql/charsets/          # 字符集文件
- /usr/share/mysql/english/           # 英语错误消息
- 配置文件模板
- 系统服务文件

哪些文件不会被影响:

bash 复制代码
# 不会被覆盖的文件:
- /var/lib/mysql/*                     # 数据文件(最重要!)
- /etc/my.cnf                          # 主配置文件
- /etc/my.cnf.d/*                      # 配置片段
- 现有的数据库文件
- 用户账户和权限
- 日志文件(除了可能的重置权限)

安全操作建议:

1. 先备份以防万一(良好习惯)

bash 复制代码
# 备份MySQL配置
sudo cp -r /etc/my.cnf /etc/my.cnf.backup
sudo cp -r /etc/my.cnf.d/ /etc/my.cnf.d.backup/

# 检查数据目录位置
mysql -e "SHOW VARIABLES LIKE 'datadir';"
# 数据通常在 /var/lib/mysql

2. 重新安装命令

bash 复制代码
# 重新安装common包
sudo yum reinstall mysql-community-common

# 如果需要,也可以重新安装客户端和服务器(如果需要修复其他问题)
# sudo yum reinstall mysql-community-server mysql-community-client

3. 重新安装后的操作

bash 复制代码
# 重启MySQL服务
sudo systemctl restart mysqld

# 检查服务状态
sudo systemctl status mysqld

# 验证数据是否还在
mysql -e "SHOW DATABASES;"

您的具体情况判断:

您的错误是找不到 errmsg.sys 文件,重新安装 mysql-community-common最合适的解决方案,因为:

  1. 这个包专门包含这个文件
  2. 不会影响数据库数据
  3. 会保留现有配置
  4. 是最官方的修复方式

建议操作步骤:

bash 复制代码
# 1. 停止MySQL服务(可选,但建议)
sudo systemctl stop mysqld

# 2. 重新安装common包
sudo yum reinstall mysql-community-common

# 3. 启动MySQL服务
sudo systemctl start mysqld

# 4. 验证问题是否解决
sudo tail -f /var/log/mysqld.log

注意: 如果您的MySQL是通过其他方式安装的(如源码编译、docker等),重新安装yum包可能不会解决问题。请先确认安装方式:

bash 复制代码
# 查看MySQL安装来源
rpm -qa | grep mysql
# 或
which mysqld

总的来说,可以放心执行 sudo yum reinstall mysql-community-common,您的数据是安全的。

相关推荐
Nturmoils19 分钟前
只恢复一张表,别把整个库都还回去
数据库
龙腾AI白云1 小时前
大语言模型:从语言理解到通用智能的跃迁
数据库·人工智能·机器学习·知识图谱
SelectDB1 小时前
快手基于 Apache Doris 千亿多模态检索的实践
大数据·数据库·数据分析
SelectDB1 小时前
StarRocks 迁移至 Apache Doris 完整指南:三步完成结构、数据与业务平滑切换
大数据·数据库·数据分析
这个DBA有点耶1 小时前
InnoDB索引组织表下,复合主键和自增主键的物理存储差异与选型对比
数据库·mysql·架构
李少兄2 小时前
数据库批量清理前置防御:如何严谨校验目标表是否存在
mysql
香吧香2 小时前
Docker Swarm 线上环境 MariaDB XA 悬停事务故障排查
mysql·异常
其实防守也摸鱼2 小时前
常见安全架构中 Shiro 的认证确认机制解析
运维·服务器·数据库·windows·github
小白男神2 小时前
MySQL进阶学习三(视图)
后端·mysql
TDengine (老段)3 小时前
TDengine 常见问题 TOP7
大数据·数据库·时序数据库·常见问题·tdengine·涛思数据