处理MySQL数据库中与文件许可有关的问题

如果遇到与文件许可有关的问题,可能数启动mysqld时UMASK环境变量设置得不正确。例如,当你创建表时,MySQL可能会发出下述错误消息:

ERROR: 无法找到文件:'path/with/filename.frm' (Errcode: 13)

UMASK的默认值是0660。通过下述方式启动mysqld_safe,可改变该情况:

shell> UMASK=384  # = 600 in octal
shell> export UMASK
shell> mysqld_safe &

在默认情况下,MySQL用0700的许可创建数据库和RAID目录。你可以通过设置UMASK_DIR变量更改该行为。如果你设置了它的值,将使用组合的UMASK和UMASK_DIR值创建新目录。例如,如果你打算为所有新的目录授予组访问权限许可:

shell> UMASK_DIR=504  # = 770 in octal
shell> export UMASK_DIR
shell> mysqld_safe &

注释:在MySQL 3.23.25和更高版本中,如果是以0开始的,MySQL将认为UMASK和UMASK_DIR的值均采用八进制形式。