Questa mattina ho corso yum update
e ha completato con successo. Abbiamo notato, tuttavia, che il server del database non era in esecuzione. Come root, ho eseguito:
service mysqld restart
Il che mi ha dato il seguente errore:
[root@ombrelle ~]# service mysqld start
MySQL Daemon failed to start.
Starting mysqld: [FAILED]
E in mysqld.log
Vedo il seguente:
141106 08:31:09 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
/usr/libexec/mysqld: File '/var/lib/binary-logs/binary-log.index' not found (Errcode: 13)
141106 8:31:09 [ERROR] Aborting
141106 8:31:09 [Note] /usr/libexec/mysqld: Shutdown complete
141106 08:31:09 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
Questo mi suggerirebbe che ha qualcosa a che fare con le autorizzazioni? I log binari si trovano in /var/lib/binary-logs
.
[root@ombrelle ~]# ls -alZ /var/lib/
...
drwxr-xr-x. mysql mysql unconfined_u:object_r:var_lib_t:s0 binary-logs
...
drwxr-xr-x. mysql mysql system_u:object_r:mysqld_db_t:s0 mysql
...
E:
[root@ombrelle ~]# ls -alZ /var/lib/binary-logs/*.index
-rw-rw----. mysql mysql unconfined_u:object_r:var_lib_t:s0 /var/lib/binary-logs/binary-log.index
Non ho modificato nessuna di queste autorizzazioni o la configurazione di MySQL. Tutto ha funzionato bene per mesi, con alcuni riavvii usando service mysqld restart
a quel tempo.
Stiamo eseguendo Centos 6.5, server MySQL da webatic:
mysql55w-server.x86_64 5.5.40-1.w6 @webtatic
Ecco la mia configurazione da /etc/my.cnf
:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
# replicate (almost) everything...
replicate-wild-ignore-table=mysql.%
# ...but don't pass dev databases on
binlog-do-db=somedb
server-id=666
report-host=ourhost.co.uk
log-bin=/var/lib/binary-logs/binary-log
binlog_format=MIXED
log-slave-updates=1
Aggiornare: Ho visto questo messaggio dentro /var/log/audit/audit.log
da SELinux:
type=AVC msg=audit(1415263841.315:946413): avc: denied { read write } for pid=49196 comm="mysqld" name="binary-log.index" dev=md2 ino=5646260 scontext=unconfined_u:system_r:mysqld_t:s0 tcontext=unconfined_u:object_r:var_lib_t:s0 tclass=file
type=SYSCALL msg=audit(1415263841.315:946413): arch=c000003e syscall=2 success=no exit=-13 a0=f974c0 a1=42 a2=1b0 a3=fffffffffffffffd items=0 ppid=48629 pid=49196 auid=0 uid=27 gid=27 euid=27 suid=27 fsuid=27 egid=27 sgid=27 fsgid=27 tty=pts5 ses=8098 comm="mysqld" exe="/usr/libexec/mysqld" subj=unconfined_u:system_r:mysqld_t:s0 key=(null)
Sto iniziando a pensare di aver bisogno di un contesto specifico sul mio binary-logs
cartella, e forse il fatto che non ho avuto questo problema prima era perché non è stato riavviato da molto tempo? (Anche se ancora non capisco perché questo non sarebbe stato un problema con un semplice service mysqld restart
).
Aggiornare: Ho aggiunto una risposta che risolve i problemi, tuttavia rimane la domanda: perché ha funzionato prima e smesso di funzionare dopo che ho funzionato yum update
?