K této otázce jsem se dostal hledáním „mysql alter table hanging“ a myslím si, že odpověď (v komentářích) by měla být zdokumentována.
Pokud spouštíte příkaz MySQL (v tomto případě pro přidání sloupce) a neočekávaně visí, např. ne kvůli velikosti dat v tabulce, pak zkontrolujte ostatní procesy běžící proti databázi. Nechal jsem dotaz spuštěný, připojil jsem se k serveru s jiným klientem a napsal
SHOW PROCESSLIST;
Můj dotaz visel a tato zpráva byla ve state
sloupec:
Waiting for table metadata lock
Všiml jsem si, že mám několik připojení k zombie ze svého počítače, zabil jsem je (KILL xxx
kde xxx
je číslo v Id
sloupec) a poté proces okamžitě skončil.