Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


B.3.3.1 文件权限问题

If you have problems with file permissions, the UMASK or UMASK_DIR environment variable might be set incorrectly when mysqld starts. For example, mysqld might issue the following error message when you create a table:

ERROR: Can't find file: 'path/with/file_name' (Errcode: 13)

The default UMASK and UMASK_DIR values are 0640 and 0750, respectively. mysqld assumes that the value for UMASK or UMASK_DIR is in octal if it starts with a zero. For example, setting UMASK=0600 is equivalent to UMASK=384 because 0600 octal is 384 decimal.

Assuming that you start mysqld using mysqld_safe, change the default UMASK value as follows:

UMASK=384  # = 600 in octal
export UMASK
mysqld_safe &
Note

An exception applies for the error log file if you start mysqld using mysqld_safe, which does not respect UMASK: mysqld_safe may create the error log file if it does not exist prior to starting mysqld, and mysqld_safe uses a umask set to a strict value of 0137. If this is unsuitable, create the error file manually with the desired access mode prior to executing mysqld_safe.

By default, mysqld creates database directories with an access permission value of 0750. To modify this behavior, set the UMASK_DIR variable. If you set its value, new directories are created with the combined UMASK and UMASK_DIR values. For example, to give group access to all new directories, start mysqld_safe as follows:

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

For additional details, see Section 6.9, “Environment Variables”.