Autorizzazione negata durante la scrittura nel registro mysql


8

Sto solo testando una nuova installazione di Ubuntu (Vivid 15.04) su Vagrant e sto riscontrando problemi con mysql e registrandomi in una posizione personalizzata.

In /var/log/syslogOttengo

/usr/bin/mysqld_safe: cannot create /var/log/mysqld.log: Permission denied

Se io ls -l /varottengo

drwxrwxr-x 10 root syslog 4096 Jun  8 19:52 log

Se guardo in / var / log il file non esiste

Pensavo di aver temporaneamente disabilitato Apparmor solo per isolare se fosse quello o qualcos'altro che causava il problema, ma non sono sicuro che stia ancora creando un problema (modifica: pensa che potrebbe ancora essere abilitato, quindi non sono sicuro se questo è un problema o semplice permessi).

Se provo a creare manualmente il file come mysql, anch'io mi viene negato (ho tentato l'accesso bash per testare, lo rimuoverò dopo).

touch /var/log/mysql.log
touch: cannot touch ‘/var/log/mysql.log’: Permission denied

Se guardo un altro server in esecuzione (centos) ha le autorizzazioni di cui sopra (e scrive come utente mysql), quindi mi chiedo come mysql ottenga normalmente le autorizzazioni per accedere alla directory / var / log e come posso farlo accedere a quella cartella tramite il normale funzionamento?

Ecco il mio profilo apparmor per mysql


/usr/sbin/mysqld {
  #include 
  #include 
  #include 
  #include 
  #include 

  capability dac_override,
  capability sys_resource,
  capability setgid,
  capability setuid,

  network tcp,

  /etc/hosts.allow r,
  /etc/hosts.deny r,

  /etc/mysql/** r,
  /usr/lib/mysql/plugin/ r,
  /usr/lib/mysql/plugin/*.so* mr,
  /usr/sbin/mysqld mr,
  /usr/share/mysql/** r,
  /var/log/mysqld.log rw,
  /var/log/mysqld.err rw,
  /var/lib/mysql/ r,
  /var/lib/mysql/** rwk,
  /var/log/mysql/ r,
  /var/log/mysql/* rw,
  /var/run/mysqld/mysqld.pid rw,
  /var/run/mysqld/mysqld.sock w,
  /run/mysqld/mysqld.pid rw,
  /run/mysqld/mysqld.sock w,

  /sys/devices/system/cpu/ r,

/var/log/mysqld.log rw,

  # Site-specific additions and overrides. See local/README for details.
  #include 
}

Ho anche aggiunto il file sopra al directoru apparmor.d / disable

Nota: ho aggiunto questa riga /var/log/mysqld.log rw, non era originariamente lì e ha lo stesso problema (dopo aver fatto il ricaricamento di un apparmor).


apparmor module is loaded.
5 profiles are loaded.
5 profiles are in enforce mode.
   /sbin/dhclient
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/lib/NetworkManager/nm-dhcp-helper
   /usr/lib/connman/scripts/dhclient-script
   /usr/sbin/tcpdump
0 profiles are in complain mode.
1 processes have profiles defined.
1 processes are in enforce mode.
   /sbin/dhclient (565) 
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

Jun  8 20:33:33 vagrant-ubuntu-vivid-64 systemd[1]: Starting MySQL Community Server...
Jun  8 20:33:33 vagrant-ubuntu-vivid-64 mysqld_safe[11231]: 150608 20:33:33 mysqld_safe Logging to '/var/log/mysqld.log'.
Jun  8 20:33:33 vagrant-ubuntu-vivid-64 mysqld_safe[11231]: touch: cannot touch ‘/var/log/mysqld.log’: Permission denied
Jun  8 20:33:33 vagrant-ubuntu-vivid-64 mysqld_safe[11231]: chmod: cannot access ‘/var/log/mysqld.log’: No such file or directory
Jun  8 20:33:33 vagrant-ubuntu-vivid-64 mysqld_safe[11231]: 150608 20:33:33 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
Jun  8 20:33:33 vagrant-ubuntu-vivid-64 mysqld_safe[11231]: /usr/bin/mysqld_safe: 126: /usr/bin/mysqld_safe: cannot create /var/log/mysqld.log: Permission denied

Risposte:


12

Mi sembra che molte persone creino una directory denominata mysqldentro /var/log, cambino il proprietario di questa cartella con l'utente mysql.

sudo mkdir /var/log/mysql
sudo chown mysql:mysql /var/log/mysql   

Questo dovrebbe farlo. Assicurarsi di aggiornare il percorso di registrazione del server e riavviarlo. Dopo aver provato, riattiva il profilo apparmor di mysql.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.