MySQLのクラッシュの最も一般的な原因は、メモリ不足が原因で停止したか、起動に失敗したことです。 これを確認するには、クラッシュ後にMySQLエラーログを確認する必要があります。

まず、次のように入力してMySQLサーバーの起動を試みます。

  1. sudo systemctl start mysql

次に、エラーログを確認して、MySQLがクラッシュする原因を確認します。 lessを使用して、一度に1ページずつログを確認できます。

  1. sudo less /var/log/mysql/error.log

メモリの量が不十分であることを示す一般的なメッセージには、Out of memoryまたはmmap can't allocateがあります。

不十分な量のメモリに対する潜在的な解決策は次のとおりです。

  • MySQL構成の最適化。 このための優れたオープンソースツールは、MySQLtunerです。 MySQLtunerスクリプトを実行すると、MySQL構成ファイル(mysqld.cnf)に一連の推奨される調整が出力されます。 MySQLTunerを使用する前にサーバーが実行されている時間が長いほど、その提案はより正確になることに注意してください。 現在の設定とMySQLTimerによって提案された設定の両方のメモリ使用量の見積もりを取得するには、この MySQLCalculatorを使用します。

  • ページの読み込みに関するWebアプリケーションのMySQLへの依存を減らす。 これは通常、アプリケーションに静的キャッシュを追加することで実行できます。 この例としては、有効にできる組み込み機能としてキャッシュを備えたJoomlaや、この種の機能を追加するWordPressプラグインである WP SuperCacheがあります。

  • より大きなVPSへのアップグレード。 MySQLデータベースを使用するサーバーには、少なくとも1GBのRAMを搭載したサーバーをお勧めしますが、データのサイズとタイプがメモリ要件に大きく影響する可能性があります。

サーバーのアップグレードは潜在的な解決策ですが、他のすべてのオプションを調査して検討した後でのみ推奨されることに注意してください。 より多くのリソースを備えたアップグレードされたサーバーも同様に多くの費用がかかるため、それが本当に最良の選択肢である場合にのみ、サイズ変更を行う必要があります。 また、MySQLのドキュメントには、クラッシュを診断および防止するための他の多くの提案が含まれていることにも注意してください。