备份工具仅限于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值(这里所指的数据库目录是 my.cnf 里面的 datadir);