2026年6月28日
2026年6月28日
MySQLのディスクフルエラーを解決する方法
ステップ1: ディスク使用量を確認する
まず、ディスクがフルであるかどうかを確認します。
# df -h
このコマンドで全体のストレージとその使用状況を表示できます。特に /var/lib/mysql などのデータ保存用ディレクトリの使用量に注意してください。
ステップ2: 不要なログファイルやバックアップを削除する
MySQLは多くのログファイルを作成しますが、これらはストレージを大量に消費することがあります。不要なログファイルとバックアップを削除することで空間を取り戻すことができます。
# MySQLのログファイルを確認
mysql> SHOW VARIABLES LIKE 'general_log_file';
mysql> SHOW VARIABLES LIKE 'slow_query_log_file';
# ログファイルを削除(例)
rm /var/lib/mysql/hostname.err
rm /var/log/mysql/slow.log
# 不要なバックアップを削除
rm -rf /var/backups/*
ステップ3: インデックスとテーブルの最適化を行う
大規模なテーブルではインデックスが不要になったり、最適化が必要になることがあります。これを確認し、必要に応じて実行します。
# オープションを設定する(例)
echo "SET GLOBAL innodb_file_per_table = 1;" | mysql -u root -p
# テーブルとインデックスの最適化(例)
mysql> OPTIMIZE TABLE your_table_name;
ステップ4: データベースのバックアップとリサイズを行う
最終的に、データベースをバックアップし、必要に応じてディスクサイズをリサイズすることも検討します。
# MySQLを停止する(例)
sudo systemctl stop mysql
# ファイルシステムのサイズ変更(例)
sudo fallocate -l 20G /dev/sdb1
sudo resize2fs /dev/sdb1
# MySQLを再起動する(例)
sudo systemctl start mysql
注意事項
- データロス: 上記の手順でデータファイルやバックアップを削除する際は、必ず確認を行ってください。
- サービス停止: データベースサービスを停止した場合は、適切に再起動してください。
- セキュリティ上の注意: サーバーへのアクセス方法やユーザー管理も見直すことが重要です。
- パフォーマンス/運用上の注意: 経常的なディスク管理は定期的に行うことで、サービス中断を防ぐことができます。
まとめ
1. ディスク使用量の確認: サーバー全体とMySQLデータ保存用ディレクトリの使用量を確認します。
2. 不要なログファイルやバックアップの削除: 不要なファイルを定期的に削除することでストレージを節約します。
3. インデックスとテーブルの最適化: インデックスの最適化によりパフォーマンス向上が期待できます。
4. データベースのバックアップとリサイズ: データの安全性和サーバーの可用性を確保するために必要な操作を行います。
関連記事: