MySQL文件及目录权限设置分析-爱可生( 三 )


1. 不使用service命令启动

MySQL文件及目录权限设置分析-爱可生

文章插图
 
启动后生成的mysql.err权限仍为0664,通过mysql连接数据库,创建新的数据库及表,查看权限:
MySQL文件及目录权限设置分析-爱可生

文章插图
 
新创建的文件及数据库目录的权限为0664、0774 。
 
4.2.2.2 源码层面分析
MySQL文件及目录权限设置分析-爱可生

文章插图
 
使用/etc/init.d/mysql 启动:
MySQL文件及目录权限设置分析-爱可生

文章插图
 
使用/etc/init.d/mysql start 启动,产生atoi_octal函数调用,UMASK、UMASK_DIR环境变量生效 。
 
4.2.3 特殊文件的权限
socket文件权限:
每次MySQL启动之后产生的socket文件(本例中的mysql.sock)的权限与预期不符,通过查看相关源码,以及相关socket文件生成的源码,可以解释该现象 。
 
4.2.3.1 源码层面分析
MySQL socket文件生成源码:
MySQL文件及目录权限设置分析-爱可生

文章插图
 
socket文件生成的相关源码:
MySQL文件及目录权限设置分析-爱可生

文章插图
 
4.3 总结
  1. 代码中单独定义了my_umask变量,并通过判断环境变量来调整my_umask的值;
  2. 如果日志文件存在, 重启时打开日志时并不会对文件权限变更;如果文件不存在,打开日志时会创建并设定文件权限 。

【MySQL文件及目录权限设置分析-爱可生】


推荐阅读