通常、成熟したソフトウェアには独自のログ ファイルがあります。これらのログを使用して、問題を迅速に特定します。 Mysqlでは、ログが次のカテゴリーに分かれています:
スロークエリログ SQLの実行時間が設定値を超えた場合に記録されます
エラー ログ。mysql の開始、停止、または実行時にエラーが発生すると、エラー ログに記録されます。
バイナリ ログ。このログには、変更された SQL ステートメントが記録されます。データベース データ。彼を通じて、Mysql データを復元できます。
クエリ ログ。オンにすると、クエリ SQL が記録されます。
今日は、スロー クエリ、エラー ログ、クエリ ログ、バイナリ ログ ファイルについて説明します。これらについては、後ほど新しい記事で詳しく説明します。
エラー ログ
エラー ログには、Mysql の起動時と停止時に発生する問題や、Mysql の動作中に発生する重大な問題が記録されます。 。 'log_err%'; のような show 変数を使用して、エラー ログ ファイルの場所を表示できます。
mysql> show variables like 'log_err%'; +---------------------+-------------------------------+ | Variable_name | Value | +---------------------+-------------------------------+ | log_error | ./iZbp171edtq2kx5iy0xufeZ.err | | log_error_verbosity | 3 | +---------------------+-------------------------------+ 2 rows in set (0.01 sec)
エラー ログは、デフォルトでファイル名としてホスト名、サフィックスとして err を使用し、mysql ディレクトリの下の /var ディレクトリに保存されます。これを変更したい場合は、構成ファイル内の log_error 項目を変更できます。相対パスまたは絶対パスを使用できます。相対パスを使用する場合はエラー ログ ファイル名のみを変更でき、絶対パスを使用する場合はエラー ログが保存される場所を変更できます。
エラー ログの表示も非常に簡単で、cat または vim を使用して表示するだけです。
一般クエリ ログ
一般クエリ ログはすべてのユーザー操作を記録するため、通常は大きなスペースを占有し、通常は日常的に使用されます。運用および保守のため有効にはならず、デフォルトではログも閉じられます。これを有効にしたい場合は、構成ファイルにログ オプションを追加できます。
スロー クエリ ログ
スロー クエリは、SQL の問題をトラブルシューティングするための非常に優れたツールです。多くの場合、SQL が原因で問題が発生します。システムがスムーズに動作しない。作成者は以前、非常に複雑なクエリ ステートメントを使用してこの間違いを犯しており、そのステートメントが期限切れになるとすぐにシステムが 502 を取得しました。少し前に、dedecms を使用していた会社の古いプロジェクトにも同様の問題があり、データ量が一定のレベルに達すると、スロークエリが大量に発生し、システム全体の CPU がいっぱいになることがわかりました。したがって、スロー クエリ ログを頻繁にチェックして SQL の問題を見つける必要があります。
#スロークエリ設定項目
ケース次に、mysql スロー クエリ ログをオンにして時間を 0 に設定し、すべてを記録します。 SQL。次に、スロークエリのログがどのようなものかを見てみましょう。
Tcp port: 3306 Unix socket: /tmp/mysql.sock Time Id Command Argument # Time: 2020-05-31T12:00:01.895700Z # User@Host: blog[blog] @ localhost [] Id: 3 # Query_time: 0.000170 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0 use blog; SET timestamp=1590926401; SET NAMES utf8mb4; # Time: 2020-05-31T12:00:01.902684Z # User@Host: blog[blog] @ localhost [] Id: 3 # Query_time: 0.006914 Lock_time: 0.006529 Rows_sent: 0 Rows_examined: 120 SET timestamp=1590926401; SELECT * FROM knowledge WHERE is_delete=0 AND star < 5 AND show_time <= 1590854400 ORDER BY show_time ASC LIMIT 1;
主に Query_time 行を確認します
以上がMySQLの運用保守ログ管理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。