伺服器磁碟已滿,Mysql服務無法啟動,如何收縮資料庫?

伺服器磁碟已滿,Mysql服務無法啟動,如何收縮資料庫?

我目前遇到一個重大問題。 VPS 磁碟已滿,mysql 資料庫意外成長,無法從主機購買更多空間,因為它已經耗盡。

由於儲存空間不足,mysql服務無法啟動。

有什麼方法可以在關閉服務的情況下對資料庫執行查詢嗎?但我想這需要一些第三方工具,而伺服器上的空間不允許這樣做。如果我沒記錯的話,即使我從資料庫中刪除一些舊數據,它也不會收縮。

我什至無法將整個資料庫文件下載到我的電腦並嘗試在那裡重建它,因為它太大了,我沒有任何可以容納它的驅動器。

我現在有什麼選擇?有誰知道我接下來可以做什麼?

答案1

MySQL 不會以 root 身分運行,因此您可能仍然有「保留」的可用空間。您可以收回這一點:tune2fs -m 0 /dev/whatever

您沒有說明您擁有什麼作業系統,但您可能可以在其他地方釋放一些空間。如果你有 Ubuntu,請嘗試apt clean。從/var/log/*等中刪除日誌檔。

如果您仍然可以安裝某些內容,請安裝ncdu並執行操作ncdu -x /,以便您輕鬆了解要刪除的內容。

另外,我經常使用的一個技巧是在某處放置一個幾百 MB 的虛擬文件,如果遇到這種情況可以將其刪除。那,當然還有監控。

一旦你有空間,你就必須跑到OPTIMIZE TABLE有問題的桌子上。但是,這將導致重新創建,因此您需要額外的空間。此外,它需要使用 來運行innodb_file_per_table,這是當今的預設設定。

相關內容