我尝试了所有内容,每当我尝试启动mysql
时,我都会收到此错误
140526 18:21:36 InnoDB: Using Linux native AIO
^G/usr/sbin/mysqld: Can't create/write to file '/mysql/ibAlmthH' (Errcode: 13)
我甚至尝试使用完全写入权限在tmp
中使用my.cnf
目录,但我仍然会收到该错误
我试过这篇文章
https://stackoverflow.com/a/16178696
但仍然是同样的错误
我应该怎么做
答案 0 :(得分:4)
请参阅stackoverflow问题编号-2783313,这可能会有所帮助:
最近的Ubuntu Server Editions(例如10.04)附带AppArmor,MySQL的配置文件默认情况下可能处于强制模式。你可以像这样执行sudo aa-status
来检查这个:
# sudo aa-status
5 profiles are loaded.
5 profiles are in enforce mode.
/usr/lib/connman/scripts/dhclient-script
/sbin/dhclient3
/usr/sbin/tcpdump
/usr/lib/NetworkManager/nm-dhcp-client.action
/usr/sbin/mysqld
0 profiles are in complain mode.
1 processes have profiles defined.
1 processes are in enforce mode :
/usr/sbin/mysqld (1089)
0 processes are in complain mode.
如果mysqld包含在强制模式中,那么它可能会拒绝写入。当AppArmor阻止写入/访问时,条目也将写入/ var / log / messages中。您可以做的是修改/etc/apparmor.d/usr.sbin.mysqld
并在底部附近添加/data/
和/data/*
,如下所示:
...
/usr/sbin/mysqld {
...
/var/log/mysql/ r,
/var/log/mysql/* rw,
/var/run/mysqld/mysqld.pid w,
/var/run/mysqld/mysqld.sock w,
/data/ r,
/data/* rw,
}
然后让AppArmor重新加载配置文件。
# sudo /etc/init.d/apparmor reload
警告:上述更改将允许MySQL读取和写入/ data目录。我们希望您已经考虑过这一点的安全隐患。
答案 1 :(得分:1)
尝试手动运行此命令:
touch /mysql/ibAlmthH
如果无法创建它,则会出现文件系统问题,例如:只读文件系统, 所以你需要先修复文件系统问题, 还要检查此目录上的可用磁盘空间,可能没有空间。
答案 2 :(得分:0)
更改目录读取,写入和执行权限..
Chmod 777 / directory_path