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

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.