エンジニアの転職を支援するFEnetインフラのテックブログ。ネットワークなどのITインフラ情報を中心に発信中。

  1. FEnetインフラ
  2. FEnetテックマガジン
  3. データベース
  4. MySQLでログファイルをチェックするには?MySQLで使えるログは4種類

MySQLでログファイルをチェックするには?MySQLで使えるログは4種類

  • データベース
  • テクノロジー
公開日時:   更新日時:
MySQLでログファイルをチェックするには?MySQLで使えるログは4種類
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    MySQLエンジニア 案件・求人一覧はこちら

    MySQLはログファイルを出力する


    Webシステムの構築にはWebサーバーと連携して動作するデータベース管理ソフトが欠かせません。特にオープンソースのMySQLおよび互換性があるmariadbは、その使い易さからWebサーバーと連携して使われることの多いデータベース管理ソフトです。

    しかしデーモンとして実行されるMySQLやmariadbの動作状況を直接チェックする手段はありません。そこでMySQLやmariadbのログファイルをチェックすることで動作状況をチェックします。

    まずはMySQLやmariadbでログファイルをチェックするために知っておきたいログの基本について解説します。

    そもそもログとは

    ログファイルとは、OSやアプリケーションなどがその動作状況や障害情報などを、一定のフォーマットで時系列に書き出したテキストファイルです。動作状況や障害情報などのイベントにつき1行で書かれているのが一般的で、日時と分類コード、発生内容などが記述されています。

    なおログファイルのログは英語で書くとlogです。logを辞書で引くと木材という意味ですが、IT用語のログは木材のことではありません。航海日誌のことを英語でlogbookと言うことから、記録という意味でlogが使われるようになり、IT用語として使われるようになった言葉です。

    ログファイルの場所

    CentOSやUbuntuなどのLinuxでは、yumコマンドやaptコマンドなどで簡単にmariadbをインストールできます。そのようなmariadbのログファイルの場所は、いっしょにインストールされる設定ファイルに定義されているので特に設定する必要はありません。

    例えばCentOSのyumコマンドでmariadbをインストールした場合、mariadbの設定ファイルが同時にインストールされます。この設定ファイルにログファイルの場所が定義されているのでチェックしてみてください。

    ログファイルをチェックするには

    先ほど紹介したCentOSのyumコマンドでインストールできるmariadbのログファイルはテキストファイルです。そのためmariadbのログファイルをチェックするには、エディタなどで開くことで読むことが可能です。

    ただしデフォルトで使っていると詳細な実行状況は記録されていません。詳細な実行状況は記録するためには、MySQLやmariadbのログファイルの仕組みを理解し、設定方法を知らなければなりません。次からログの設定について詳しく解説します。

    MySQLで使えるログは4種類


    先ほどMySQLと互換性があるmariadbが書き出すログファイルの場所をチェックする方法を紹介しましたが、このログファイルに出力される情報はエラーメッセージだけではありません。

    MySQLとmariadbでは、エラーメッセージの他に処理内容などを含む4種類のログを出力できます。

    MySQLとmariadbのログの種類
    ・エラーログ
    ・通常のクエリログ
    ・スロークエリログ
    ・バイナリログ

    次からこの4つのログについて紹介します。

    デフォルトはエラーログ

    インストールしたばかりのMySQLやmariadbをそのまま実行した際に出力されるデフォルトのログがエラーログです。エラーログでは全ての致命的エラーのメッセージなどがログファイルに出力されます。

    ただしエラーログではMySQLやmariadbで障害が発生したことが解る程度で、不具合の詳細を調べることはできません。WordPressのような障害が滅多に起きないシステムで使えるログと考えてください。

    通常のクエリログ

    通常のクエリログでは、先ほど紹介したエラーログに加えてMySQLやmariadbで実行されたクエリーの情報もログファイルに書き出します。

    データベースと連携しているWebシステムで不具合が発生した場合、どのデータが原因で起きたかを調べなければなりません。そのような場合、不具合発生直前に実行しているクエリーが解れば不具合の解説に役立ちます。

    通常のクエリログを設定するには、mysqldの起動オプションとして「–general-log」を指定するか、/etc/my.cnfなどの設定ファイルで「general_log=1」を設定してください。

    スロークエリログ

    先ほど紹介した通常のクエリログは全てのクエリーの情報を書き出すため、システムによっては短期間で巨大なログファイルができてしまいます、それを日常的に解析するのは簡単ではありません。

    スロークエリログを設定することで、エラーログに加えて時間がかかるクエリーの情報を書き出します。そしてこのログを解析することで長い時間を要するクエリーをチェックでき、システムのパフォーマンスの改善が可能です。

    スロークエリログを設定するには、mysqldの起動オプションとして「–slow-query-log」を指定するか、/etc/my.cnfなどの設定ファイルで「low_query_log=1」と「long_query_time」にチェックする時間を秒単位で指定します。

    また「slow_query_log_file」で通常のログファイルとは別のファイルに書き出すことも可能です。

    バイナリログ

    バイナリログとは、ログからデータベースを復旧するために利用できる情報を書き出したファイルです。テキストファイルではないので、エディタで内容をチェックできない点に注意してください。

    例えば1日1回バックアップしているデータベースのサーバーが突然停止した場合、バックアップした時点までは復元できますが、その時点からサーバーが停止した時刻までのデータが失われてしまいます。

    そこでログファイルに書き出した情報を利用して復元できるようにしたのがバイナリログです。

    バイナリログを利用するには、mysqldの起動オプションとして「–log-bin」でファイル名を指定するか、/etc/my.cnfなどの設定ファイルで「log-bin」にファイル名を設定します。

    MySQLのlog_error設定例


    MySQLやmariadbでは、ログを含む動作に関する設定を、インストール時に同時に作られる設定ファイルに記述します。

    次からMySQLやmariadbの設定ファイルで、ログファイルを設定する手順を、Linuxのサーバーとして使われることの多いCentOSの例を用いて紹介します。

    CentOSの設定ファイル

    Webサーバーなどでよく使われるCentOSではMySQLの代わりにmariadbを標準でインストールでき、その設定ファイルは/etc/my.cnf.d/mariadb-server.cnfです。このファイルはテキストファイルなので、テキストエディタで編集できます。

    まずは「[mysld]」を探してください。その下に次のようなログの設定があります。

    CentOS 8.3の/etc/my.cnf.d/mariadb-server.cnfのデフォルト設定

    上記の「log-error」でログを書き出すファイル名を指定しています。

    設定ファイルを修正する

    設定ファイルの修正手順を、デフォルトのエラーログから通常のクエリログに変更する手順を用いて紹介します。

    まず通常のクエリログを出力するには「general_log=1」を/etc/my.cnf.d/mariadb-server.cnfに追加します。例えば、下記のように修正してください。

    CentOS 8.3の/etc/my.cnf.d/mariadb-server.cnfの修正例

    設定ファイルを変更したら、mariadbのデーモンを再起動します。suコマンドでrootに切り替えて次のコマンドでデーモンを再起動してください。

    これでエラーログから通常のクエリログに変更されます。

    MySQLのログの仕組みの理解を


    MySQLやmariadbのようなデータベースは直接稼働状況をチェックできないので、ログファイルによる管理が欠かせません。

    データベースと連携したWebシステムを管理するなら、MySQLのログの仕組みを理解するのが第一歩です。そして、ログファイルを活用してデータベースを管理できるエンジニアを目指しましょう。

    MySQLエンジニア 案件・求人一覧はこちら

    FEnetを運営しているネプラス株式会社はサービス開始から10年以上
    『エンジニアの生涯価値の向上』をミッションに掲げ、
    多くのインフラエンジニア・ネットワークエンジニアの就業を支援してきました。
    ネプラス株式会社ロゴ

    ネプラス株式会社はこんな会社です

    秋葉原オフィスにはネプラス株式会社をはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • インフラ業界に特化

      インフラ業界に特化

      ネットワーク・サーバー・データベース等、ITインフラ業界に特化。Cisco Systemsプレミアパートナーをはじめ各種ベンダーのパートナー企業です。

      業界を知り尽くしているからこそ大手の取引先企業、経験豊富なエンジニアに選ばれています。

    • 正社員なのにフリーランスのような働き方

      正社員なのにフリーランスのような働き方

      正社員の方でも希望を聞いたうえでプロジェクトをアサインさせていただいており、フリーランスのような働き方が可能。帰社日もありません。

      プロジェクト終了後もすぐに次の案件をご紹介させていただきますのでご安心ください。

    • 大手直取引の高額案件

      大手直取引の高額案件

      案件のほとんどが大手SIerやエンドユーザーからの直取引のためエンジニアの皆様へに高く還元できています。

      Ciscoをはじめ、Juniper、Azure、Linux、AWS等インフラに特化した常時300件以上の案件があります。

    • スキルアップ支援

      スキルアップ支援

      不要なコストを削減し、その分エンジニアの方へのスキルアップ支援(ネットワーク機器貸出、合格時の受験費用支給など)や給与で還元しています。

      受験費用例)CCNP,CCIE:6-20万円、JNCIS:3-4万円、AWS:1-3万円など

      ※業務に関連する一定の資格のみ。各種条件がありますので詳しくは担当者へにお尋ねください。

    • 現給与を保証します!

      100%現給与保証

      前職の給与保証しており、昨年度は100%の方が給与アップを実現。収入面の不安がある方でも安心して入社していただけます。

      ※適用にはインフラエンジニアの業務経験1年以上、等一定の条件がございます。

    • インセンティブ制度

      インセンティブ制度

      ネットワーク機器の販売・レンタル事業等、売上に貢献いただいた方にはインセンティブをお支払いしています。

      取引先企業とエンジニア側、双方にメリットがあり大変好評をいただいています。

    • 社会保険・福利厚生

      社会保険・福利厚生

      社員の方は、社会保険を完備。健康保険は業界内で最も評価の高い「関東ITソフトウェア健康保険組合」です。

      さらに様々なサービスをお得に利用できるベネフィットステーションにも加入いただきます。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      ネプラスは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    ネプラス株式会社に興味を持った方へ

    ネプラス株式会社では、インフラエンジニアを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    ネプラス株式会社へのご応募はこちら↓
    ネプラス株式会社へのご応募はこちら↓

    MySQL新着案件New Job