今天因为binlog 文件的权限问题,最终追踪是MySQL 安装初始化指定了了MySQL用户生成文件的权限,于是把问题记录下来并做了总结:
1.默认情况下mysqld 程序生产的目录的权限是UMASK 的值是 0700,文件的权限是UMASK 的值是 0660.
[mysql@localhost ~]$ ll /export/servers/data/my3306/data/test/ -ld
drwx------. 2 mysql root 4096 6月 10 11:19 /export/servers/data/my3306/data/test/ #目录 0700
[mysql@localhost ~]$ ll /export/servers/data/my3306/binlog/ -ld #文件 0660
-rw-rw---- 1 mysql myinstall 150 9月 24 15:12 mysql-bin.000019
-rw-rw---- 1 mysql myinstall 150 9月 24 15:12 mysql-bin.000020
如果要修改mysqld 生成文件的权限,则增加环境变量到 mysql 的 .bash_profile .bashrc。
export UMASK=0600 #或者是十进制数值 =384 ,以 0 开头的话就是八进制
export UMASK_DIR=0750
修改后:
[mysql@localhost ~]$ ll /export/servers/data/my3306/data/hhl -ld
drwx--x--- 2 mysql myinstall 4096 9月 24 15:34 /export/servers/data/my3306/data/hhl [mysql@localhost ~]$ ll /export/servers/data/my3306/binlog/ -l
-rw------- 1 mysql myinstall 450 9月 24 15:34 mysql-bin.000025 # 0600
-rw------- 1 mysql myinstall 188 9月 24 15:34 mysql-bin.000026
总结:这里的UMASK 和 系统 的umask 不是一个含义,不要混淆了啊,UMASK变量控制了文件生成的权限,注意在mysql 权限最小化控制选择合适的权限。
--------------------------------------分割线 --------------------------------------
Ubuntu 14.04下安装MySQL
Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL
Ubuntu 12.04 LTS 构建高可用分布式 MySQL 集群
Ubuntu 12.04下源代码安装MySQL5.6以及Python-MySQLdb
--------------------------------------分割线 --------------------------------------