Centos 6.5 安装 Mysql 后更改存储路径问题
问题:
[Warning] Can't create test file xxx.lower-test
[Warning] Can't create test file xxx.lower-test
usrlibexecmysqld Can't change dir to 'xxx' (Errcode 13)
解决方案:
第一.selinux,安装redhat(很古老的操作系统么。。。)的时候,有这么一个选项,通常大家都听取前辈的建议,改变默认值以不安装它。但如果你恰好要操作的这台机器开着selinux,它确实能够使你的mysql无法在新目标位置进行mysql_install_db的操作,并报出问题所示的警告。一个简单的解决办法是使用命令暂时关闭selinux,以便让你的操作可以继续下去 setenforce 0
最好使用一个永久方法,以便在重启后继续不要这货。
修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启或等待下次重启。
第二.apparmor,这个坑爹货和selinux一样的坑爹,它也对mysql所能使用的目录权限做了限制。在 /etc/apparmor.d/usr.sbin.mysqld 这个文件中,有这两行规定了mysql使用的数据文件路径权限
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
你一定看到了,/var/lib/mysql/就是之前mysql安装的数据文件默认路径,apparmor控制这里mysqld可以使用的目录的权限
我想把数据文件移动到/data/mysql下,那么为了使mysqld可以使用/data/mysql这个目录,照上面那两条,增加下面这两条就可以了
/data/mysql/ r,
/data/mysql/** rwk,
重启apparmor,/etc/inid.d/apparmor restart
搞定!