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,您的数据是安全的。

相关推荐
云和数据.ChenGuang1 小时前
达梦数据库部署安装故障一
数据库·oracle·达梦·信创·达梦数据库
倔强的石头1062 小时前
场景化落地指南——金仓时序数据库在关键行业的应用实践
数据库·时序数据库·kingbase
xj7573065332 小时前
《精通Django》 第7章 高级视图和URL配置
数据库·django·sqlite
海棠AI实验室2 小时前
第2篇:本地目录与资产标准(把“素材—文案—对话—上架”变成可追溯的生产线)
数据库·资产
数据知道2 小时前
在PostgreSQL中并发保存上亿个图片链接和图片md5的对应关系,如何做最合适?
数据库·postgresql
麦麦鸡腿堡2 小时前
MySQL_合计/统计函数
数据库·mysql
GIS之路2 小时前
ArcGIS Pro 添加底图的方式
前端·数据库·python·arcgis·信息可视化
alonewolf_992 小时前
深入理解Redis线程模型:单线程神话与原子性实战
数据库·redis·缓存·分布式架构
五阿哥永琪2 小时前
MySQL面试题 事务实现全解析:Undo Log、Redo Log、锁与 MVCC 协同机制详解
数据库·mysql