You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS6.9下MySQL初始化指定home目录datadir报权限错误13

MySQL 8.0 自定义datadir初始化权限报错(OS errno 13)解决方案

核心问题

你已经确认datadir目录权限、属主正常且关闭了SELinux,仍出现权限拒绝,90%以上的概率是datadir的上层父目录没有给mysql用户开放执行权限:mysql用户需要对路径上的所有父级目录都有执行(x)权限,才能进入目标目录读写内容。CentOS默认普通用户的home目录/home/user权限为700,仅所有者可访问,mysql用户没有进入权限,就会触发该报错。

具体修复步骤

  • 检查父级目录权限
    执行如下命令确认/home和/home/user的权限:

    ls -ld /home /home/user
    

    正常/home权限应为755,如果/home/user的权限是700,就会导致权限拦截。

  • 开放父目录执行权限
    方案1:给所有用户开放/home/user的执行权限(操作简单)

    chmod o+x /home/user
    

    方案2:仅给mysql用户单独授权(更安全,需要ACL支持)

    # 先安装ACL工具
    yum install -y acl
    # 给mysql用户单独添加/home/user的执行权限
    setfacl -m u:mysql:x /home/user
    
  • 重置datadir目录属性
    确保目标数据目录的属主和权限正确:

    chown -R mysql:mysql /home/user/mysql-data
    chmod 750 /home/user/mysql-data
    
  • 重新执行初始化命令

    bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/home/user/mysql-data
    

额外排查项

如果上述操作后仍报错,可做如下检查:

  • 执行getenforce确认SELinux确实为Disabled状态,若为Enforcing说明关闭未生效,需修改/etc/selinux/config文件后重启服务器。
  • 执行lsattr /home/user/mysql-data检查是否有不可修改属性,若返回结果带i标识,执行chattr -i /home/user/mysql-data移除属性。
  • 临时关闭iptables测试:service iptables stop,排除防火墙规则拦截。

内容的提问来源于stack exchange,提问作者sriman narayana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 06:15:03