Por que o MariaDB não inicia após a atualização (NO_NEW_PRIVILEGES)?

7

Após a atualização do meu servidor debian (testing, jessie to stretch) no DigitalOcean, o MariaDB não será iniciado com o serviço mariadb start .

Eu tentei limpar todos os pacotes mariadb- * e mysql- *, excluir configurações e dados, e reinstalá-los, mas o mariadb-server-10.1.21-5 se recusa a ser configurado:

Setting up mariadb-server-10.1 (10.1.21-5) ...
Job for mariadb.service failed because the control process exited with error code.
See "systemctl status mariadb.service" and "journalctl -xe" for details.
invoke-rc.d: initscript mysql, action "start" failed.
● mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Thu 2017-02-09 21:25:27 CET; 10ms ago
  Process: 1696 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=227/NO_NEW_PRIVILEGES)
  Process: 1589 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR='/usr/bin/galera_recovery'; [ $? -eq 0 ]   && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
  Process: 1584 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Process: 1582 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
 Main PID: 1696 (code=exited, status=227/NO_NEW_PRIVILEGES)

Feb 09 21:25:27 cddssh systemd[1]: Starting MariaDB database server...
Feb 09 21:25:27 cddssh systemd[1696]: mariadb.service: Failed at step NO_NEW_PRIVILEGES spawning /usr/sbin/mysqld: Invalid argument
Feb 09 21:25:27 cddssh systemd[1]: mariadb.service: Main process exited, code=exited, status=227/NO_NEW_PRIVILEGES
Feb 09 21:25:27 cddssh systemd[1]: Failed to start MariaDB database server.
Feb 09 21:25:27 cddssh systemd[1]: mariadb.service: Unit entered failed state.
Feb 09 21:25:27 cddssh systemd[1]: mariadb.service: Failed with result 'exit-code'.
dpkg: error processing package mariadb-server-10.1 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mariadb-server:
 mariadb-server depends on mariadb-server-10.1 (>= 10.1.21-5); however:
  Package mariadb-server-10.1 is not configured yet.

dpkg: error processing package mariadb-server (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 mariadb-server-10.1
 mariadb-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

esta é a saída de journalctl -xe depois de tentar iniciar o serviço:

Feb 09 05:10:52 cddssh systemd[1]: mariadb.service: Failed to set invocation ID on control group /system.slice/mariadb.service, ignoring: Operation not supported
Feb 09 05:10:52 cddssh systemd[1]: Starting MariaDB database server...
-- Subject: Unit mariadb.service has begun start-up
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit mariadb.service has begun starting up.
Feb 09 05:10:52 cddssh systemd[7114]: mariadb.service: Failed at step NO_NEW_PRIVILEGES spawning /usr/sbin/mysqld: Invalid argument
-- Subject: Process /usr/sbin/mysqld could not be executed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- The process /usr/sbin/mysqld could not be executed and failed.
--
-- The error number returned by this process is 22.
Feb 09 05:10:52 cddssh systemd[1]: mariadb.service: Main process exited, code=exited, status=227/NO_NEW_PRIVILEGES
Feb 09 05:10:52 cddssh systemd[1]: Failed to start MariaDB database server.
-- Subject: Unit mariadb.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit mariadb.service has failed.
--
-- The result is failed.
Feb 09 05:10:52 cddssh systemd[1]: mariadb.service: Unit entered failed state.
Feb 09 05:10:52 cddssh systemd[1]: mariadb.service: Failed with result 'exit-code'.

log de erro do mysql não tem erros / avisos.

Eu posso iniciar o binário do mysqld por si só.

Eu tentei seguir as instruções no link , mas recebi um erro

mariadb.service: Failed at step NO_NEW_PRIVILEGES spawning /usr/sbin/mysqld: Invalid argument

Parece que tem algo a ver com o selinux quando encontrei estas linhas em /lib/systemd/system/mariadb.service

# Doesn't yet work properly with SELinux enabled
# NoNewPrivileges=true

Alguém fez uma pergunta muito semelhante sobre o superusuário, mas não entendi o que ele fez para resolvê-lo: link

    
por Spikolynn 09.02.2017 / 05:34

3 respostas

7

Com a ajuda do # debian-next, descobri que o problema estava provavelmente no kernel personalizado digitalocean.

Ao verificar, eu estava usando um kernel não muito recente - 3.2.0-4, mas depois de selecionar uma versão mais recente da interface web e reinicializar, tudo funciona bem.

    
por 11.02.2017 / 02:34
1

Eu tive esse mesmo problema com o Debian 9.1 e com o MariaDB 10.1.26-MariaDB-0+deb9u1 . Parece que também foi relacionado à versão do kernel. A atualização do kernel de 3.2.50 para 4.9.0-3-amd64 corrigiu.

    
por 07.12.2017 / 09:50
1

Para mim também foi o kernel (upgrade para 4.9.0-3-amd64); só estou executando o MariaDB em um Xen vm.

O kernel é retirado do Dom0 do script de inicialização, então, mesmo após uma atualização, ele ainda tinha o kernel antigo. Mudar o script no Dom0 resolveu o problema do MariaDB.

    
por 25.01.2018 / 03:32