CentOS修改MySQL数据目录后重启失败的问题及解决方案

文章目录

问题描述

由于磁盘空间不足,想要迁移MySQL数据存储目录,修改完 my.cnf 配置文件之后,重启失败(如下图),查看 mysqld.log 之后看到如下报错内容(如下图):

shell 复制代码
2025-10-17T02:09:52.864185Z 0 [System] [MY-015015] [Server] MySQL Server - start.
2025-10-17T02:09:53.081737Z 0 [Warning] [MY-010091] [Server] Can't create test file /home/mysql/mysqld_tmp_file_case_insensitive_test.lower-test
2025-10-17T02:09:53.081810Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.4.6) starting as process 2918986
2025-10-17T02:09:53.084738Z 0 [Warning] [MY-010091] [Server] Can't create test file /home/mysql/mysqld_tmp_file_case_insensitive_test.lower-test
2025-10-17T02:09:53.084744Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /home/mysql/ is case insensitive
mysqld: File './binlog.index' not found (OS errno 13 - Permission denied)
2025-10-17T02:09:53.085953Z 0 [ERROR] [MY-010119] [Server] Aborting
2025-10-17T02:09:53.087281Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.4.6)  MySQL Community Server - GPL.
2025-10-17T02:09:53.087301Z 0 [System] [MY-015016] [Server] MySQL Server - end.

解决方案

经排查发现,是 selinux 配置限制,需要进行如下配置,即可解决:

shell 复制代码
# 添加正确的类型(mysqld_db_t)
sudo semanage fcontext -a -t mysqld_db_t "/home/mysql(/.*)?"

# 应用上下文
sudo restorecon -Rv /home/mysql/

重启 MySQL 服务:

复制代码
systemctl restart mysqld


********************************* 只要思想不滑坡,办法总比困难多*********************************

相关推荐
无足鸟ICT13 分钟前
【RHCA+】查看变量
linux·运维·服务器
Kina_C23 分钟前
Linux DNS 服务器-从高速缓存到辅助 DNS 部署指南
linux·运维·服务器·dns
suaizai_35 分钟前
TypeScript 7 正式发布!Vue 暂被 “拒之门外“ !!!
linux·运维·ubuntu
NWU_白杨2 小时前
三种常用的数据存储技术
数据库·redis·mysql·sqlite
慕伏白2 小时前
【慕伏白】Linux 系统如何根据端口号关闭进程
linux·运维·服务器
letisgo52 小时前
VMware Workstation + Ubuntu 26.04 LTS 小白运维部署手册
linux·运维·ubuntu
IT探索2 小时前
Linux 查找文件指令总结
linux·算法
晚风吹长发2 小时前
Docker使用——Docker容器及相关命令
linux·运维·服务器·docker·容器·架构
一嘴一个橘子2 小时前
MySqL 的 B+树、 叶子节点、非叶子节点
mysql
sulikey2 小时前
个人Linux操作系统学习笔记11 - 环境变量
linux·笔记·学习