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