OrangeGardenRoom

技術系のメモ

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,

 

 

結構雑にとりあえず動けばいいや、って感じなので、雑です。

備忘録と、同じことで悩んでる人がいれば手助けになれば幸いぐらいのメモです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です