sql >> データベース >  >> RDS >> Mysql

mysql致命的なエラー:バッファプールにメモリを割り当てることができません

    TLDR;

    メモリが不足しているため、Mysqlを再起動できません。適切なスワップファイルが構成されていることを確認してください。

    助けにならなかった?それがあなたの問題ではない場合、調査を継続するためのより適切な質問は次のとおりです。

    背景

    EC2でセットアップした最初のシステムでまさにこの問題が発生しました。これは、EC2でホストされているワードプレスサイトが「データベース接続の確立エラー」でダウンすることがあるという特徴があります。

    ログには、OPが投稿したのと同じエラーが表示されました。エラー(タイムスタンプが削除された)の私の読みは次のとおりです:

    • メモリ不足エラー: InnoDB: Fatal error: cannot allocate memory for the buffer pool
    • InnoDBは十分なメモリがないと起動できません [ERROR] Plugin 'InnoDB' init function returned error. [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. [ERROR] Unknown/unsupported storage engine: InnoDB [ERROR] Aborting
    • mysqldがシャットダウンしています。これは、このコンテキストでは、実際には再起動に失敗することを意味します! [Note] /usr/sbin/mysqld: Shutdown complete

    /var/log/syslogを確認しています mysqlを検索します 収量:

    Out of memory: Kill process 15452 (mysqld) score 93 or sacrifice child
    Killed process 15452 (mysqld) total-vm:888672kB, anon-rss:56252kB, file-rss:0kB
    init: mysql main process (15452) killed by KILL signal
    init: mysql main process ended, respawning
    type=1400 audit(1443812767.391:30): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=21984 comm="apparmor_parser"
    init: mysql main process (21996) terminated with status 1
    init: mysql main process ended, respawning
    init: mysql post-start process (21997) terminated with status 1
    <repeated>
    

    注:ログがcronによってローテーションされる前にエラーが発生した場合は、アーカイブされたログをgunzipで検索して検索する必要がある場合があります。

    ソリューション

    私の場合、根本的な問題は、スワップファイルの構成を怠ったことでした。

    free -mを実行すると、構成されているかどうかを確認できます。 。

    total used free shared buffers cached Mem: 604340 587364 16976 0 29260 72280 -/+ buffers/cache: 485824 118516 Swap: 0 0 0

    上記の例では、Swap:0はスワップファイルがないことを示します。

    1つを設定するためのチュートリアル:

    大きいほど良いとは限らないことに注意してください! Ubuntuガイド から :

    他の回答についてはこちら...

    The InnoDB memory heap is disabled

    おかげで:RubenSchadeコメント

    [Note] Plugin 'FEDERATED' is disabled.

    参照: https://stackoverflow.com/a/16470822/2586761



    1. WooCommerceクーポンはどのようにデータベースに保存されますか?

    2. SQLException:プロトコル違反。 OracleJDBCDriverの問題

    3. PHPを使用してMySQLデータベースからデータを取得し、編集用のフォームに表示する

    4. N行の一意のレコード制限を選択します