MySQL SystemDログファイルの権限が拒否されました。

MySQL SystemDログファイルの権限が拒否されました。

CentOS 7サーバーにMySQL 5.6をインストールし、エラーログの場所をデフォルトから変更しようとしています/var/log/mysql.log/var/log/mysqld.errデフォルトのファイルの場所を使用するとMySQLが正しく実行されますが、err 13 - Permission Deniedログファイルの場所を変更しようとするとsystemdサービスは失敗します。ファイルアクセス権と所有者/グループを設定し、次のようにサービスを再起動しました。

chown mysql:mysql /var/log/mysqld.err
chmod 640 /var/log/mysqld.err
systemctl daemon-reload
systemctl restart mysql

しかし、mysqldサービスが出力を/var/log/mysqld.err

ファイルアクセス権も777に設定してみました/var/log/mysqld.err。この場合、mysqld_safeスクリプトを手動で実行すると、スクリプトはログファイルに正常に書き込むことができますが、すべてのユーザーがファイルを編集できるようにしても、systemdサービスはまだ失敗します。

ファイルアクセス権と所有者/グループ設定に加えて、systemdサービスがアクセスできるファイルを制限する他の設定はありますか?参考までに、私はMySQLリポジトリからインストールされたサービススクリプトを変更せず、サービスの上書きファイルを追加しませんでした。

答え1

SELinux権限の問題については、ABの言葉が正しいです。新しいファイルにはmysqld_log_tタイプが必要です。タイプを変更して問題を解決しました。

chcon -t mysqld_log_t /var/log/mysqld.err

関連情報