Saya hanya menguji Ubuntu baru (Vivid 15.04) menginstal pada Vagrant, dan mendapatkan masalah dengan mysql dan masuk ke lokasi kustom.
Di /var/log/syslog
saya mendapatkan
/usr/bin/mysqld_safe: cannot create /var/log/mysqld.log: Permission denied
Jika ls -l /var
saya 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