A.B estava correto sobre o problema estar com as permissões do SELinux. O novo arquivo precisava de um mysqld_log_t
type. Corrigi o problema alterando o tipo:
chcon -t mysqld_log_t /var/log/mysqld.err
Instalei o MySQL 5.6 em um servidor CentOS 7 e estou tentando alterar o local do log de erros do padrão /var/log/mysql.log
para /var/log/mysqld.err
. O MySQL está funcionando corretamente quando eu uso o local de arquivo padrão, mas o serviço systemd falha com err 13 - Permission Denied
quando tento alterar o local do arquivo de log. Certifiquei-me de definir as permissões de acesso ao arquivo e proprietário / grupo e reinicie o serviço com o seguinte:
chown mysql:mysql /var/log/mysqld.err
chmod 640 /var/log/mysqld.err
systemctl daemon-reload
systemctl restart mysql
mas o serviço mysqld ainda falha com o erro Permission Denied quando tenta logar a saída em /var/log/mysqld.err
.
Eu até tentei definir as permissões de acesso de arquivo em /var/log/mysqld.err
a 777. Nesse caso, o script mysqld_safe
conseguiu gravar no arquivo de log com êxito quando eu o executei manualmente, mas o serviço systemd ainda falha mesmo embora eu permitisse que qualquer usuário editasse o arquivo.
Existem configurações diferentes de direitos de acesso a arquivos e configurações de proprietário / grupo que limitam quais arquivos um serviço do systemd pode acessar? Como observação, não fiz modificações no script de serviço que está instalado a partir do repositório MySQL, nem adicionei nenhum arquivo de sobregravação para o serviço.
A.B estava correto sobre o problema estar com as permissões do SELinux. O novo arquivo precisava de um mysqld_log_t
type. Corrigi o problema alterando o tipo:
chcon -t mysqld_log_t /var/log/mysqld.err
Tags permissions mysql systemd centos