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

관련 정보