我的服务器已满94%,所以我尝试将一些mysql列从int更改为tinyint以释放一些空间,但是,一个表太大,以至于我运行时
ALTER TABLE `app_play_data` CHANGE `countryId` `countryId` TINYINT(11) UNSIGNED NOT NULL
它开始将数据复制到tmp表。 当我运行show processlist时,状态是复制到tmp表。
然后我使用kill来停止进程
它表示在我这样做后被杀死了,然而,状态通过排序变为修复。
但是现在磁盘已经100%满了,状态长期保持不变,
如何在不损坏表的情况下解决此问题?
答案 0 :(得分:1)
杀死正在进行“更改表”的进程非常危险!
当磁盘100%已满时,MySQL不喜欢它。
最佳解决方案是释放一些空间或现在增加驱动器!
在大多数情况下,MySQL会等到有空位并继续工作。