MySQL 8.3 Release Notes
如果您遇到文件权限问题,可能是 UMASK
或 UMASK_DIR
环境变量在 mysqld 启动时设置不正确。例如,mysqld 可能在创建表时发出以下错误消息:
ERROR: Can't find file: 'path/with/file_name' (Errcode: 13)
默认的 UMASK
和 UMASK_DIR
值分别为 0640
和 0750
。 mysqld假设 UMASK
或 UMASK_DIR
的值以八进制表示,如果以零开头。例如,将 UMASK
设置为 0600
等同于将其设置为 384
,因为八进制的 0600 等同于十进制的 384。
假设您使用 mysqld_safe 启动 mysqld,可以按照以下方式更改默认的 UMASK
值:
UMASK=384 # = 600 in octal
export UMASK
mysqld_safe &
Note
如果您使用 mysqld_safe 启动 mysqld,则错误日志文件是一个例外:mysqld_safe 不尊重 UMASK
:mysqld_safe 可能在启动 mysqld 之前创建错误日志文件,如果该文件不存在,mysqld_safe 使用 umask 设置为严格值 0137
。如果这不合适,可以在执行 mysqld_safe 之前手动创建错误日志文件以所需的访问模式。
默认情况下,mysqld 创建数据库目录的访问权限值为 0750
。要修改此行为,可以设置 UMASK_DIR
变量。如果设置了其值,新的目录将使用组合的 UMASK
和 UMASK_DIR
值。例如,要给所有新的目录提供组访问权限,可以按照以下方式启动 mysqld_safe:
UMASK_DIR=504 # = 770 in octal
export UMASK_DIR
mysqld_safe &
有关详细信息,请参阅 第 6.9 节,“环境变量”。