私はVagrantで新しいUbuntu(Vivid 15.04)インストールをテストしていますが、mysqlとカスタムの場所にログインする際に問題が発生しました。
/var/log/syslog
私が受け取る前に
/usr/bin/mysqld_safe: cannot create /var/log/mysqld.log: Permission denied
私がls -l /var
持っているなら
drwxrwxr-x 10 root syslog 4096 Jun 8 19:52 log
/var/log を見ると、ファイルは存在しません。
問題が発生しているのか、それとも別の問題が発生しているのかを分離するために衣類を一時的に無効にしたと思いましたが、それでも問題が発生しているかどうかはわかりません。 (編集:まだアクティブになっている可能性があると思ったので、問題なのか他の問題なのかわかりません。)権限)。
mysqlでファイルを手動で生成しようとすると拒否されます(テストのために一時的にbashアクセスを許可しましたが、後で削除します)。
touch /var/log/mysql.log
touch: cannot touch ‘/var/log/mysql.log’: Permission denied
実行中の別のサーバー(centos)を見ると上記のような権限があり(そしてmysqlユーザーとして書く)、mysqlが一般に/ var / logディレクトリへのアクセス権をどのように取得し、どのようにアクセスするのか疑問に思います。通常の操作でフォルダ?
これは私の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
}
また、上記のファイルをapparmor.d/disableディレクトリに追加しました。
注:この行を追加しましたが、/var/log/mysqld.log rw
最初は存在せず、同じ問題がありました(衣類をリロードした後)。
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
答え1
mysql
ほとんどの人はinsideというディレクトリを作成し、/var/log
そのフォルダの所有者をmysqlユーザーに変更するようです。
sudo mkdir /var/log/mysql
sudo chown mysql:mysql /var/log/mysql
これは可能です。サーバーのロギング場所を更新して再起動します。テスト後、mysqlの衣類設定ファイルを再度有効にします。