[MySQL] 正常に稼働していたのにメンテナンス時に一度停止すると再起動できなくなった
2018/11/23 13:58
  • いきなりですが、先日いろいろな不可抗力もありこのサイトが丸一日ほど停止するという問題がおきました(・_・;)
    DB でも問題があったので実際に何が起きたのか、複数回に分けてまとめてみます。

    今回は MySQL が起動できるようになるまで( ・ิω・ิ)


    MySQL の再起動が失敗する

    サーバーを復旧させるために MySQL を再起動しようとしたものの、以下のようにエラーとなり起動できません。

    $ sudo service mysqld restart
    Stopping mysqld:                                           [  OK  ]
    MySQL Daemon failed to start.
    Starting mysqld:                                           [FAILED]
    

    エラーログを見てみると


    2018-11-20T00:33:42.988772Z mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
    2018-11-20T00:33:43.207333Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2018-11-20T00:33:43.208433Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.12) starting as process 3931 ...
    2018-11-20T00:33:43.215303Z 0 [Note] InnoDB: PUNCH HOLE support available
    2018-11-20T00:33:43.215333Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
    2018-11-20T00:33:43.215342Z 0 [Note] InnoDB: Uses event mutexes
    2018-11-20T00:33:43.215350Z 0 [Note] InnoDB: GCC builtin __sync_synchronize() is used for memory barrier
    2018-11-20T00:33:43.215357Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.3
    2018-11-20T00:33:43.215367Z 0 [Note] InnoDB: Using Linux native AIO
    2018-11-20T00:33:43.215683Z 0 [Note] InnoDB: Number of pools: 1
    2018-11-20T00:33:43.215800Z 0 [Note] InnoDB: Using CPU crc32 instructions
    2018-11-20T00:33:43.226607Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
    2018-11-20T00:33:43.236937Z 0 [Note] InnoDB: Completed initialization of buffer pool
    2018-11-20T00:33:43.239998Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
    2018-11-20T00:33:43.253895Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
    2018-11-20T00:33:43.255739Z 0 [ERROR] InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 17044832445 and the end 17044832256.
    2018-11-20T00:33:43.255769Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
    2018-11-20T00:33:43.856542Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
    2018-11-20T00:33:43.856590Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
    2018-11-20T00:33:43.856600Z 0 [ERROR] Failed to initialize plugins.
    2018-11-20T00:33:43.856606Z 0 [ERROR] Aborting
    2018-11-20T00:33:43.856623Z 0 [Note] Binlog end
    2018-11-20T00:33:43.856696Z 0 [Note] Shutting down plugin 'CSV'
    2018-11-20T00:33:43.856714Z 0 [Note] Shutting down plugin 'MyISAM'
    2018-11-20T00:33:43.857116Z 0 [Note] /usr/sbin/mysqld: Shutdown complete
    2018-11-20T00:33:43.871452Z mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

    ログファイルの容量が大きくなり過ぎなど原因がいくつかありそうだったのでいろいろ試しました。


    ログファイル(ib_logfile*)の削除

    $ rm -rvf ib_logfile*
    ib_logfile0
    ib_logfile1
    

    my.cnf の編集
    バッファプールやらメモリやらを増枠しました。

    [mysqld]
    # 以下追記
    wait_timeout            = 86400
    max_allowed_packet      = 1G
    innodb_buffer_pool_size = 1G
    


    この状態で MySQL を起動します。

    $ sudo service mysqld start
    Starting mysqld:                                             [  OK  ]
    

    これで起動できました。


    参考サイト


    my.cnfでinnodb関連の設定後、MySQLが起動しなくなった

    人気ブログランキングへ ブログランキング・にほんブログ村へ
    ↑応援よろしくお願いします!m(_ _)m

  • 2018/11/23 13:58
  • サーバー
  • MySQL障害起動できないサーバーServerInnoDBmy.cnf
  • 新しい記事へ
    [MySQL] データファイルから DB を復元する

    古い記事へ
    [Windows] PIXTA クリエイター向けの ZIP 圧縮スクリプトを勢いで作ったメモ

profile picture

自己紹介的な何か

@wkmettyでついったーやってます。時々。 6年間勤めたゲーム会社を2018年2月に退職しフリーランスのプログラマに。 WordPress Core, WP-CLI コントリビューター。 お仕事募集中です。