MySQLが起動しない(Ubuntu 16.04.3 LTS)
下記エラーがでてダメ。
Could not create unix socket lock file /var/run/mysqld/mysqld.sock.lock.
もともと、Ubuntu 12.04だったのを、Ubuntu 16.04にあげてみたのが運の尽き。
あげた記憶ないんだけどなぁ……。
☆結論
AppArmorが邪魔してた。
12.04のときなんて、AppArmorなかった(使ってなかった?)から気にしてなかったけど、
新しいUbuntuは有効になっていたので多分それが影響していたのかと。
もともと、MySQLは、ロックファイルに、「/var/run/mysqld/mysqld.sock」というファイルを使っていたのに、
MySQL 5.6.10から?あたりで、「/var/run/mysqld/mysqld.sock.lock」というファイルに変わったらしい。
ちなみにエラーは
audit: type=1400 audit(1554822718.426:2598086): apparmor=”DENIED” operation=”open” profile=”/usr/sbin/mysqld” name=”/run/mysqld/mysqld.sock.lock” pid=4803 comm=”mysqld” requested_mask=”r” denied_mask=”r” fsuid=102 ouid=102
こんなのです。
ですので、
/etc/apparmor.d/usr.sbin.mysqlの
/var/run/mysqld/mysqld.pid rw,
/var/run/mysqld/mysqld.sock w,
/run/mysqld/mysqld.pid rw,
/run/mysqld/mysqld.sock w,
このへんを
/var/run/mysqld/mysqld.pid rw,
/var/run/mysqld/mysqld.sock w,
/var/run/mysqld/mysqld.sock.lock rw,
/run/mysqld/mysqld.pid rw,
/run/mysqld/mysqld.sock w,
/run/mysqld/mysqld.sock.lock rw,
こうしました。
ちなみに、wだけつけたら、mknodのエラーじゃなくて、openのエラーになったので、rもつけましたとさ。
修正したら下記コマンド実行して再読込。
sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.mysqld
いつもsudoつけわすれるんだよなあ。
あと、多分、下記もいれないとだめっぽい。(多分rでOK)
/proc/* r,
/sys/device/system/node/* r,
/etc/mysql/my.cnf.migrated r,
結構雑にとりあえず動けばいいや、って感じなので、雑です。
備忘録と、同じことで悩んでる人がいれば手助けになれば幸いぐらいのメモです。
SR-7100VNでの光電話収容 【Yamahaルータ】DHCP Option 121(Classless Static Routes)の設定