MySQL が起動しないで "[InnoDB] Unable to lock ./ibdata1 error" が出続ける場合は裏で動いているプロセスを切る

状況

MySQL をスタートさせるとこんなログが出る状況です。

foobar | 2022-04-18T03:18:47.208332Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
foobar | 2022-04-18T03:18:47.281734Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11
foobar | 2022-04-18T03:18:48.282992Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11
foobar | 2022-04-18T03:18:49.284458Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11
foobar | 2022-04-18T03:18:50.286125Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11
foobar | 2022-04-18T03:18:51.287800Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11
foobar | 2022-04-18T03:18:52.289881Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11
foobar | 2022-04-18T03:18:53.291744Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11
foobar | 2022-04-18T03:18:54.293712Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11
foobar | 2022-04-18T03:18:55.295607Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11
foobar | 2022-04-18T03:18:56.297634Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11
foobar | 2022-04-18T03:18:57.299803Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11

結論

このとき、裏側で動いている MySQL のプロセスがあるので、それを kill します。

まずプロセスを調べます。

$ ps aux | grep mysql
27       1838505  0.5  4.6 2131484 373820 ?      Sl   12:39   0:18 mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci ......

上記が裏で動いているプロセスだとして、これを kill します。

$ sudo kill -9 1838505  

kill したあとに MySQL を再起動すれば問題なく起動できているはずです。

Powered by はてなブログ