CentOS 7运行MySQL提示/var/lib/mysql目录不可用,尝试常用方案仍报错
CentOS 7下MySQL数据目录不可用报错修复方案
报错原文:
The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it
报错翻译:指定的数据目录/var/lib/mysql/不可用,您可删除服务器向该目录添加的所有文件。
正确修复步骤
你之前操作的核心问题大概率是相对路径删文件未命中目标目录、初始化时未指定mysql用户导致权限继承异常,按以下步骤操作即可解决:
- 停止正在运行的MySQL服务,避免文件占用导致操作失效:
systemctl stop mysqld - 清空目标数据目录下所有内容,必须使用绝对路径避免误删,你之前使用的相对路径
rm -rf ./mysql若未在/var/lib目录下执行,会出现删错路径的问题:rm -rf /var/lib/mysql/* - 以mysql用户身份执行初始化,避免初始化生成的文件归属root用户导致后续权限异常:
mysqld --initialize --user=mysql - 配置目录权限,不要使用777过高权限,按照MySQL默认要求设置为750即可:
chmod -R 750 /var/lib/mysql - 统一设置目录归属用户和用户组,不需要单独执行用户授权命令:
chown -R mysql:mysql /var/lib/mysql - 启动MySQL服务验证:
systemctl start mysqld - 检查服务运行状态,返回active(running)即为修复成功:
systemctl status mysqld
特殊情况排查(CentOS 7默认开启SELinux时适用)
如果执行完上述步骤仍报错,大概率是SELinux规则限制了MySQL对目录的访问权限,按以下步骤处理:
- 临时关闭SELinux验证问题:
setenforce 0 - 再次尝试启动MySQL,若启动成功则执行以下命令添加SELinux规则,避免后续重启后再次报错:
semanage fcontext -a -t mysqld_db_t "/var/lib/mysql(/.*)?"restorecon -Rv /var/lib/mysql
内容的提问来源于stack exchange,提问作者y47999
相关产品推荐
相关产品推荐

