Errcode: 13 “Permission denied“
时间: 2025-03-26 12:42:52 浏览: 63
### 解析 Errcode 13 "Permission denied" 错误
当遇到 `Errcode: 13 "Permission denied"` 错误时,这通常意味着 MySQL 或其他应用程序尝试访问某个文件或目录时缺乏必要的权限。此问题可能由多种原因引起,包括操作系统级别的权限设置不当、AppArmor 安全模块的限制等。
#### 修改 MySQL 配置文件
对于 MySQL 报错 `Errcode: 13 "Permission denied"`,可以考虑调整 MySQL 的配置文件来解决问题[^1]。具体操作取决于具体的环境和需求:
- **检查并修正路径权限**:确保 `/etc/mysql/conf.d/` 目录及其子项具有适当读取权限。
- **更改数据存储位置**:如果默认的数据目录存在问题,则可尝试指定一个新的有效路径作为数据存放地点。
```bash
sudo chown -R mysql:mysql /path/to/new/datadir
sudo chmod -R 750 /path/to/new/datadir
```
#### 处理 AppArmor 对 MySQL 访问控制的影响
有时即使设置了正确的文件系统权限,仍然会遭遇此类错误。这是因为 Linux 下运行的应用可能会受到安全框架如 AppArmor 的约束[^4]。针对这种情况:
- 查看当前 AppArmor 状态以及日志记录,确认是否存在阻止 MySQL 正常工作的策略;
- 编辑对应的服务配置文件(一般位于 `/etc/apparmor.d/`),增加允许访问的目标资源声明;
- 更新 AppArmor 并重启受影响的服务使改动生效。
```bash
sudo aa-status
sudo nano /etc/apparmor.d/usr.sbin.mysqld
# 添加必要路径至 profile 中...
sudo systemctl restart apparmor.service
sudo service mysql restart
```
通过以上方法应该能够有效地处理大部分由于权限不足引发的操作失败情况。不过需要注意的是,在生产环境中实施任何变更之前都应充分评估潜在风险,并做好备份工作以防万一。
阅读全文
相关推荐


















