ファイル権限に問題がある場合、mysqld の起動時に UMASK
または UMASK_DIR
環境変数が正しく設定されないことがあります。 たとえば、mysqld では、テーブルの作成時に次のエラーメッセージが発行される場合があります:
ERROR: Can't find file: 'path/with/file_name' (Errcode: 13)
UMASK
および UMASK_DIR
のデフォルト値は、それぞれ 0640
および 0750
です。mysqld では、UMASK
または UMASK_DIR
の値がゼロで始まる場合、その値は 8 進数であるとみなされます。 たとえば、0600 オクタルは 384 桁であるため、UMASK=0600
の設定は UMASK=384
と同等です。
mysqld_safe を使用して mysqld を起動する場合は、デフォルトの UMASK
値を次のように変更します:
UMASK=384 # = 600 in octal
export UMASK
mysqld_safe &
UMASK
を考慮しない mysqld_safe を使用して mysqld を起動すると、エラーログファイルに例外が適用されます: 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 &
追加の詳細については、セクション4.9「環境変数」を参照してください。