MySQL umask 导致备份报错


备份工具仅限于xtrabackup(2.0+)

umask 大家并不陌生,它设定的文件(目录)的默认权限;一般新创建的目录权限为755,文件为644;

但MySQL对于新创建的数据库目录的权限为 700;数据表文件为660;这可让我们摸不著头脑啦。难道MySQL不依赖系统自己设定的值?参考文档:MySQL UMASK 决定数据库目录、文件权限是由两个变量UMASK UMASK_DIR 来决定,UMASK 与 Linux中 umask恰好相反,Linux是规定umask 是权限的反向掩码,而UMASK 规定多少其权限就是多少;

可设置UMASK UMASK_DIR 这两个选项来设定MySQL创建文件的默认权限(需重启MySQL);

为什么MySQL要自己控制一些变量,来实现权限控制(这就不得而知了,可能会安全有关)?

由UMASK 引起的注意事项:

备份:使用xtrabackup 备份的时候,系统用户如果不是 root 或者mysql,它只备份那些有权限进入的数据库目录,没有权限的它还不会报错,ca(如果备份的第一个数据库目录就没有进入权限,就会直接报错)

解决方式:修改数据库目录权限为755,或者更改UMASK_DIR值;

MySQL备份和恢复具体实施

MySQL备份与恢复的三种方法总结

MySQL备份还原(视图、存储过程)

相关内容