mysqlのALTER TABLEがきかない時の対処方法を記す。色々なケースがあると思うが、今回紹介するのは以下のような症状だ。
- エラーログが出てない
- コマンド後にフリーズする
こういう時はshow processlistを確認しよう。
MariaDB [app_cms]> show processlist; +----+-------+-----------------+---------+---------+------+-------+------------------+----------+ | Id | User | Host | db | Command | Time | State | Info | Progress | +----+-------+-----------------+---------+---------+------+-------+------------------+----------+ | 33 | admin | localhost:44020 | app_cms | Sleep | 1215 | | NULL | 0.000 | | 34 | admin | localhost | app_cms | Query | 0 | init | show processlist | 0.000 | +----+-------+-----------------+---------+---------+------+-------+------------------+----------+
id 33のCommadnに注目すると「sleep」とある。そこでこのプロセスを潰してしまおう。kill 33で解決する。