導入この記事では、MySQL のログについて、あまり深く掘り下げずに簡単にまとめ、紹介します。主な目的は、MySQL のログ ファイルを体系的に理解することです。 ログ分類MySQL のログ ファイルには、構成ファイル、エラー ログ ファイル、バイナリ ファイル (バイナリ ログ)、スロー クエリ ログ (スロー クエリ ログ)、ジェネラ ログ (ジェネラ ログ)、監査ログ (監査ログ)、データベース ファイルとデータ テーブル ファイル、ストレージ エンジン ファイル、リレー ログ (リレー ログ)、プロセス ファイル (PID)、ソケット ファイルが含まれます。 パラメータファイルパラメータ ファイルは、MySQL では構成ファイル、Linux では my.cnf ファイル、Windows では my.ini ファイルです。ファイルの内容は、主にサーバーとクライアントの 2 つのモジュールに分かれています。サーバー モジュールは、スロー クエリ ログなどの MySQL サービス情報を構成します。クライアント モジュールは、クライアント接続のポート番号などの MySQL クライアント接続情報を構成します。 [クライアント] ポート = 3306 デフォルトの文字セット = utf8mb4 [mysqld] ユーザー = mysql ポート = 3306 sql_mode = "" デフォルトのストレージエンジン = InnoDB デフォルト認証プラグイン = mysql_native_password 文字セットサーバー = utf8mb4 照合サーバー = utf8mb4_unicode_ci init_connect = '名前をutf8mb4に設定' 遅いクエリログ 長いクエリ時間 = 3 スロークエリログファイル = /var/lib/mysql/mysql.slow.log ログエラー = /var/lib/mysql/mysql.error.log デフォルトのタイムゾーン = '+8:00' エラーログファイルエラー ログ ファイルには、MySQL の起動、操作、シャットダウンからのログ情報が記録されます。たとえば、MySQL への接続失敗、クエリ コマンド エラー、SQL 実行プロセスなどです。 MySQL エラーを見つけるのに非常に役立ちます。 バージョン: '5.7.28-log' ソケット: '/var/run/mysqld/mysqld.sock' ポート: 3306 MySQL コミュニティ サーバー (GPL) 2021-04-17T21:23:00.865868Z 3 [注記] db: 'exam_wechat' ユーザー: 'root' ホスト: '172.18.0.1' への接続 3 が中止されました (通信パケットの読み取り中にタイムアウトが発生しました) 2021-04-17T21:23:00.865969Z 2 [注記] db: 'exam_wechat' ユーザー: 'root' ホスト: '172.18.0.1' への接続 2 を中止しました (通信パケットの読み取り中にタイムアウトが発生しました) 2021-04-19T22:33:24.137143Z 0 [注記] InnoDB: page_cleaner: 1000ms の意図したループに 18415ms かかりました。設定が最適ではない可能性があります。(その間、flushed=0 および evicted=0) 2021-04-20T07:03:21.765208Z 79 [注記] ユーザー 'root'@'172.18.0.1' のアクセスが拒否されました (パスワード使用: NO) 2021-04-20T07:03:23.825044Z 81 [注記] db への接続 81 が中止されました: 'unconnected' ユーザー: 'root' ホスト: '172.18.0.1' (通信パケットの読み取り中にエラーが発生しました) 2021-04-20T07:14:25.033983Z 82 [注記] ユーザー 'root'@'172.18.0.1' のアクセスが拒否されました (パスワード使用: NO) 2021-04-20T07:14:27.442608Z 84 [注記] db への接続 84 が中止されました: 'unconnected' ユーザー: 'root' ホスト: '172.18.0.1' (通信パケットの読み取り中にエラーが発生しました) 2021-04-20T07:27:13.971644Z 83 [注記] db: 'unconnected'、ユーザー: 'root'、ホスト: '172.18.0.1' への接続 83 が中止されました (通信パケットの読み取り中にタイムアウトが発生しました) 2021-04-20T07:41:02.916249Z 85 [注記] db: 'unconnected'、ユーザー: 'root'、ホスト: '172.18.0.1' への接続 85 が中止されました (通信パケットの読み取り中にタイムアウトが発生しました) エラーログを開始する方法。 MySQL の設定ファイルでインテント log_error を設定するだけです。 mysql [email protected]:(none)> '%log_error%' のような変数を表示します。 +---------------------+--------------------------------+ | 変数名 | 値 | +---------------------+--------------------------------+ | binlog_error_action | ABORT_SERVER | | log_error | /var/lib/mysql/mysql.error.log | | ログエラーの詳細度 | 3 | +---------------------+--------------------------------+ 3行セット 時間: 0.010秒 完全なログファイル完全なログ ファイルには、MySQL のすべての SQL 操作ログが記録されます。例えば、追加、削除、変更、確認などの操作が記録されます。 mmysql [email protected]:(none)> '%general%' のような変数を表示します。 再接続しています... +------------------+---------------------------------+ | 変数名 | 値 | +------------------+---------------------------------+ | 一般ログ | オフ | | 一般的なログファイル | /var/lib/mysql/7fdc5f723ff9.log | +------------------+---------------------------------+ 構成項目には、table、none、file の 3 つの値があります。ファイルを設定すると、データはログ ファイルに記録されます。何も設定しないと、データは記録されません。テーブルを設定すると、データを記録するためのテーブル (general-log と呼ばれます) がデフォルトの MySQL データベースに作成されます。 有効にすることはお勧めしません。ログ ファイルが多すぎると、パフォーマンスが低下するだけでなく、無効なスペースも大量に占有されます。 # ログ ファイル形式mysqld、バージョン: 5.7.28-log (MySQL Community Server (GPL))。開始時: TCP ポート: 3306 Unix ソケット: /var/run/mysqld/mysqld.sock 時間IDコマンド引数 2021-04-20T09:16:48.572888Z 88 TCP/IPを使用して[email protected]に接続 2021-04-20T09:16:48.574591Z 88 接続 ユーザー 'root'@'172.18.0.1' のアクセスが拒否されました (パスワード使用: NO) 2021-04-20T09:16:50.325379Z 89 TCP/IPを使用して[email protected]に接続 2021-04-20T09:16:50.329894Z 89 クエリ select connection_id() 2021-04-20T09:16:50.335222Z 89 クエリ SELECT @@VERSION 2021-04-20T09:16:50.339432Z 90 TCP/IPを使用して[email protected]に接続 2021-04-20T09:16:50.339621Z 89 クエリ SELECT @@VERSION_COMMENT 2021-04-20T09:16:50.343525Z 90 クエリ select connection_id() 2021-04-20T09:16:50.347115Z 90 クエリ SHOW DATABASES 2021-04-20T09:16:50.380236Z 90 クエリはinformation_schema.columnsからTABLE_NAME、COLUMN_NAMEを選択します table_schema = 'なし'の場合 テーブル名、序数位置で並べ替え 2021-04-20T09:16:50.391019Z 90 クエリ SELECT CONCAT("'", user, "'@'", host,"'") FROM mysql.user 2021-04-20T09:16:50.415062Z 90 クエリ SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES ROUTINE_TYPE="FUNCTION" かつ ROUTINE_SCHEMA = "None" の場合 2021-04-20T09:16:50.432015Z 90 クエリ SELECT name from mysql.help_topic WHERE name like "SHOW %" 2021-04-20T09:16:52.572608Z 89 クエリは '%general%' のような変数を表示します 2021-04-20T09:17:13.532046Z 89 クエリは '%general%' のような変数を表示します スロークエリログスロークエリログは、SQL クエリの速度を記録するログファイルです。 SQL ステートメントのクエリ時間が固定しきい値を超えると、この SQL ステートメントはスロー クエリ SQL ステートメントとして定義され、スロー クエリ ログ ファイルに記録されます。 スロークエリの設定には、主に次の 3 つのパラメータが含まれます。 スロー クエリとスロー クエリ ログ ファイルを有効にするかどうか。 mysql [email protected]:(none)> '%slow%' のような変数を表示します。 +---------------------------+-------------------------------+ | 変数名 | 値 | +---------------------------+-------------------------------+ | slow_query_log | オン | | slow_query_log_file | /var/lib/mysql/mysql.slow.log | +---------------------------+-------------------------------+ 5行セット 時間: 0.014秒 遅いクエリ時間のしきい値。 mysql [email protected]:(none)> '%long_query_time%' のような変数を表示します。 +-----------------+----------+ | 変数名 | 値 | +-----------------+----------+ | 長いクエリ時間 | 3.000000 | +-----------------+----------+ セット内の1行 時間: 0.013 バイナリログファイルバイナリ ログ ファイルは、MySQL DML ステートメントを記録するために使用されます。操作後の物理的なログ コンテンツが記録されますが、MySQL の select、show などのステートメントは記録されません。バイナリ ログ ファイルの主な機能は次のとおりです。 マスタースレーブレプリケーションの場合、マスターサーバーはバイナリファイル内の物理ログをスレーブサーバーに送信し、スレーブサーバーはログを自身に書き込みます。 データ復旧に使用されます。物理ログに基づいて、データ損失前の操作ログを取得します。 次のパラメータを使用して設定できます。 mysql [email protected]:(none)> '%log_bin%' のような変数を表示します。 再接続しています... +---------------------------------+--------------------------------+ | 変数名 | 値 | +---------------------------------+--------------------------------+ | log_bin | オン | | log_bin_basename | /var/lib/mysql/mysql-bin | | log_bin_index | /var/lib/mysql/mysql-bin.index | +---------------------------------+--------------------------------+ 6行セット 時間: 0.015秒 log_bin はバイナリ ログ ファイルを開くかどうかを示し、log_bin_basename は保存されているディレクトリとログ ファイルのプレフィックスを示し、log_bin_index はログ ファイルのインデックス (ログ ファイル名) を示します。ログ ファイルにファイル名が指定されていない場合は、デフォルトでローカル名が使用されます。 ログ ファイルのリスト。 -rw-r----- 1 mysql ルート 154 4月 12日 09:31 mysql-bin.000041 -rw-r----- 1 mysql ルート 154 4月12日 19:45 mysql-bin.000042 -rw-r----- 1 mysql ルート 1459325 4月17日 20:26 mysql-bin.000043 -rw-r----- 1 mysql mysql 24576 4月17日 22:18 mysql-bin.000044 # cat mysql-bin.index ./mysql-bin.000001 ./mysql-bin.000002 ./mysql-bin.000003 ./mysql-bin.000004 ./mysql-bin.000005 ./mysql-bin.000006 監査ログ監査ログは、MySQL ネットワーク アクティビティを記録し、MySQL 操作レコードの統計、分析、レポートを実行するために使用されます。 MySQL セキュリティ監視情報を記録するログ ファイル。 MySQL自体にはこの機能は含まれておらず、MySQL公式サイトでもこの機能は有料となっています。ここでは具体的なデモンストレーションは示されません。 リレーログリレー ログは、スレーブ サーバー上の MySQL マスター スレーブ レプリケーションにおいて重要な役割を果たします。マスター サーバーがバイナリ ファイルをスレーブ サーバーに送信すると、スレーブ サーバーはそれをすぐに実行せず、指定された種類のログ ファイルに書き込みます。次に、スレーブ サーバーは SQL スレッドを開始してリレー ログ ファイルの内容を読み取り、それを自身のデータに書き込みます。 PID ファイルPID は MySQL インスタンスのプロセス ID です。 MySQL は単一プロセスのサービスです。MySQL インスタンスを起動すると、PID ファイルが作成されます。 ソケットファイルソケットも MySQL 通信の手段です。 MySQL 通信には TCP と Socket の 2 つの方法があります。 TCP はネットワーク通信を使用し、アクセス可能な任意のサーバーにサービスを展開できます。ソケットはファイル通信方式であり、同じサーバー上にある必要があります。 # TCP モード mysql -hxxxx -pxxxx -uxxxx -Pxxx mysql -uxxxx -pxxxx -s /path/socket データベースとテーブルデータベースとテーブルの値は、MySQL のテーブル構造ファイル、データ ファイル、インデックス ファイルです。 -rw-r----- 1 mysql ルート 13650 4月13日 09:46 wechat_user.frm -rw-r----- 1 mysql mysql 98304 4月17日 13:43 wechat_user.ibd MyISAM ストレージ エンジン データ テーブル構造 -rw-r----- 1 mysql mysql 0 4月20日 17:53 users.MYD -rw-r----- 1 mysql mysql 1024 4月 20 17:53 users.MYI -rw-r----- 1 ルート ルート 8586 4月 20 17:53 users.frm ストレージエンジンファイルストレージ エンジンによって実装が異なります。 InnoDB ストレージ エンジンは、redolog と undolog の 2 種類のログ ファイルに分かれています。 これで、MySQL の重要なログ ファイルの包括的なインベントリに関するこの記事は終了です。MySQL ログ ファイルに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Linux システム修復モード (シングル ユーザー モード)
>>: CSS3 を使って本のページめくり効果を実現するサンプルコード
このノートでは、 MySQL の B+Tree インデックスとは何ですか?クラスター化インデックスは...
ドラッグ アンド ドロップはフロントエンドでよく使われる機能であり、多くのエフェクトで js のドラ...
ブラウザでのページのレンダリング時間をできるだけ短縮するにはどうすればよいでしょうか? この記事は、...
目次1. withRouterコンポーネントを使用する2. ルートタグを使用するReactRoute...
公式の MySQL イメージを使用するには、構成ファイル、DB データ ファイル ディレクトリなどの...
1. フロントエンドエンジニアリングの複雑さいくつかの小さなデモ プログラムを開発するだけであれば、...
ウェブページ上の画像が一般的に jpg、gif、png 形式であることは誰もが知っています。それらの...
XHTML には似た機能を持つタグがいくつかあります。もちろん、ここでの類似性とは意味の類似性を指...
デフォルトでは、CentOS 7 上の PHP は apache または nobody として実行さ...
序文フロントエンドページを書くとき、小さなアイコンなどの画像を使うことが多いです。画像を使うとコード...
なぜこのような効果を実現するのでしょうか。実は、この効果もタイトルプロンプトから派生したものですが、...
プロジェクトを開発しているとき、支払い済み、支払済み、クローズ済み、返金済みなどの注文ステータスなど...
1. CSSスタイルは、テキストが長すぎる場合に省略記号を表示する問題を解決します1. 一般的なスタ...
計算機の主な機能は数値計算を実行することです。計算機機能の Web インスタンスを開発すると、js ...
XPath は、XML ドキュメントの一部を選択するための言語です。 XPath は、XSLT、XQ...