Izin menolak menulis ke log mysql


8

Saya hanya menguji Ubuntu baru (Vivid 15.04) menginstal pada Vagrant, dan mendapatkan masalah dengan mysql dan masuk ke lokasi kustom.

Di /var/log/syslogsaya mendapatkan

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

Jika ls -l /varsaya mengerti

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

Jika saya melihat / var / log file tidak ada

Saya pikir saya telah menonaktifkan sementara aparatur hanya untuk mengisolasi jika itu atau sesuatu yang menyebabkan masalah, tetapi tidak yakin apakah ini masih membuat masalah (edit: pikir itu mungkin masih diaktifkan, jadi tidak yakin apakah ini merupakan masalah atau sederhana izin).

Jika saya mencoba membuat file secara manual sebagai mysql saya juga ditolak (saya temp diizinkan untuk mengakses, saya akan menghapus setelah).

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

Jika saya melihat server lain yang sedang berjalan (centos) ia memiliki izin seperti di atas (dan menulis sebagai pengguna mysql), jadi saya bertanya-tanya bagaimana biasanya mysql mendapatkan izin untuk mengakses direktori / var / log, dan bagaimana saya bisa mendapatkannya mengakses folder itu melalui normal running?

Ini adalah profil apparmor saya untuk 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 
}

Saya juga menambahkan file di atas ke apparmor.d / disable directoru

Catatan: Saya menambahkan baris ini /var/log/mysqld.log rw, awalnya tidak ada di sana, dan memiliki masalah yang sama (setelah melakukan pengisian ulang 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

Jawaban:


12

Menurut saya kebanyakan orang membuat direktori bernama mysqlinside of /var/log, mengubah pemilik folder ini menjadi pengguna mysql.

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

Itu harus dilakukan. Pastikan untuk memperbarui lokasi logging server dan restart. Setelah Anda uji, aktifkan kembali profil appsor mysql.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.