Ich teste gerade eine neue Ubuntu-Installation (Vivid 15.04) auf Vagrant und bekomme Probleme mit MySQL und der Protokollierung an einem benutzerdefinierten Speicherort.
In /var/log/syslog
bekomme ich
/usr/bin/mysqld_safe: cannot create /var/log/mysqld.log: Permission denied
Wenn ls -l /var
ich bekomme
drwxrwxr-x 10 root syslog 4096 Jun 8 19:52 log
Wenn ich in / var / log nachschaue, existiert die Datei nicht
Ich dachte, ich hätte Apparmor vorübergehend deaktiviert, um zu isolieren, ob es das oder etwas anderes ist, das das Problem verursacht, aber ich bin mir nicht sicher, ob es immer noch ein Problem verursacht (Bearbeiten: Ich denke, es ist möglicherweise noch aktiviert, also nicht sicher, ob dies ein Problem ist oder einfach Berechtigungen).
Wenn ich versuche, die Datei manuell als MySQL zu erstellen, wird mir dies ebenfalls verweigert (ich habe vorübergehend den Bash-Zugriff auf den Test zugelassen, den ich anschließend entfernen werde).
touch /var/log/mysql.log
touch: cannot touch ‘/var/log/mysql.log’: Permission denied
Wenn ich mir einen anderen laufenden Server (Centos) ansehe, verfügt er über die oben genannten Berechtigungen (und schreibt als MySQL-Benutzer). Daher frage ich mich, wie MySQL normalerweise Berechtigungen für den Zugriff auf das Verzeichnis / var / log erhält und wie ich darauf zugreifen kann Zugriff auf diesen Ordner über normale Ausführung?
Hier ist mein Apparmor-Profil für 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
}
Ich habe auch die obige Datei zur Datei apparmor.d / disable Director hinzugefügt
Hinweis: Ich habe diese Zeile hinzugefügt /var/log/mysqld.log rw
, sie war ursprünglich nicht vorhanden und hat das gleiche Problem (nach einem Apparmor-Reload).
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