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


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

相关推荐
剑指offer.几秒前
ARM裸机开发-点亮LED灯
linux·服务器·嵌入式硬件
GeW10 分钟前
工作忙.基础弱,也能快速拿RHCE?这套方法亲测有效
linux
这个DBA有点耶19 分钟前
InnoDB索引组织表下,复合主键和自增主键的物理存储差异与选型对比
数据库·mysql·架构
李少兄35 分钟前
数据库批量清理前置防御:如何严谨校验目标表是否存在
mysql
香吧香37 分钟前
Docker Swarm 线上环境 MariaDB XA 悬停事务故障排查
mysql·异常
小白男神1 小时前
MySQL进阶学习三(视图)
后端·mysql
Julien20041 小时前
自动挂载网络附加存储
linux·服务器·网络
codigger1 小时前
服务器又卡了?一篇讲透 Linux 性能排查(基础四件套 + perf/strace/火焰图)
linux·后端·性能优化
顶点多余2 小时前
9.18 面试题总结 --- 绿盟
linux·面试
挖掘狂人2 小时前
当生产环境"变慢",我用这套 perf + strace 30 分钟定位瓶颈
linux·运维·性能优化