Imansible avviare MySQL con SELinux

Sto tentando di avviare MySQL con SELinux su CentOS 6 ma ho il seguente errore.

131212 09:08:08 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 131212 09:08:58 mysqld_safe Starting mysqld daemon with databases from /u/mysql 131212 9:08:58 [Warning] Can't create test file /u/mysql/webserver.lower-test 131212 9:08:58 [Warning] Can't create test file /u/mysql/webserver.lower-test ^G/usr/libexec/mysqld: Can't change dir to '/u/mysql/' (Errcode: 13) 131212 9:08:58 [ERROR] Aborting 

Abbiamo MySQL installato con molti altri server, tuttavia la differenza è che il datadir di mysql è in una partizione diversa da quella standard /vat/lib.mysql. Invece è in / u / mysql.

Ecco il /etc/my.cnf

 [mysqld] datadir=/u/mysql user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 max_allowed_packet = 32M [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid 

Ecco le autorizzazioni per il mysql dir

 drwxr-xr-x. mysql mysql system_u:object_r:mysqld_db_t:s0 mysql 

e qui sono le autorizzazioni per una delle direttive nel / u / mysql dir

 drwx------. mysql mysql system_u:object_r:mysqld_db_t:s0 databasefolder 

Qualcuno ha delle idee su come risolvere questo problema? Posso confermare che distriggersndo SELinux risolve il problema in modo che deve essere una sorta di autorizzazioni di SELinux.

Grazie

  • Come assegnare un'etichetta SELinux a un symlink con il semanage in modo che persista dopo un relabel?
  • Motivi per distriggersre / abilitare SELinux
  • Come posso dire a SELinux di consentire l'accesso di nginx a un socket unix senza audit2allow?
  • SELinux / PostgresQL "negato {open} per comm =" pg_ctl "path =" $ PGDATA / postgresql.conf "
  • Selinux semanage elimina o modifica la catena
  • Come distriggersre SELINUX per lo script systemd?
  • Password persa su istanza EC2 SELinux
  • SELinux rimuove o lascia l'antica etichetta di port SSH?
  • 2 Solutions collect form web for “Imansible avviare MySQL con SELinux”

    Il luogo da cominciare è guardare il tuo /var/log/audit/audit.log per i messaggi AVC negati relativi a mysqld. Questi possono essere passati a audit2 perchè raccogliere ulteriori informazioni per aiutarti a decidere cosa fare.

    Hai i file mysql in una posizione non standard e sebbene le directory dispongano del context corretto, è probabile che i file in esse non lo siano. Il modo migliore per raggiungere questo objective è quello di aggiungere un nuovo fcontext per la directory / u / mysql

     semanage fcontext -a -t mysqld_db_t "/u/mysql(/.*)?" restorecon -rv /u/mysql 

    Il command semanage configura la policy in modo che i successivi comandi di restorecon non ripristino il context al sistema predefinito.

    Il mio collega ha avvertito che questo alla fine ha risolto il problema.

    Puoi vedere motivi leggibili per i rifiuti umani

     audit2why -a 

    Per generare nuovi moduli di policy utilizzare

     audit2allow -a -M <policyname> 

    Se non trovate errori

     yum install policycoreutils-python pschaff 

    https://www.centos.org/forums/viewtopic.php?t=8935

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.