MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

4.5.1.3 mysql クライアントロギング

mysql クライアントは、対話形式で実行されるステートメントに対して次のタイプのロギングを実行できます:

次の説明では、すべてのロギングタイプに適用される特性について説明し、各ロギングタイプに固有の情報を提供します。

ロギングの方法

有効なロギング先ごとに、ステートメントのロギングは次のように行われます:

その結果、複数行にまたがる入力ステートメントが 2 回ログに記録されることがあります。 次の入力について考えます。

mysql> SELECT
    -> 'Today is'
    -> ,
    -> CURDATE()
    -> ;

この場合、mysql では SELECT'Today is',CURDATE() および;の行が読取り時に記録されます。 また、SELECT\n'Today is'\n,\nCURDATE()SELECT 'Today is' , CURDATE() に対応付けたあと、区切り文字を追加した完全なステートメントもログに記録します。 したがって、ログに記録される出力には次の行があります。

SELECT
'Today is'
,
CURDATE()
;
SELECT 'Today is' , CURDATE();

mysql では、ignore リスト内の任意のパターンに一致するロギング目的のステートメントは無視されます。 デフォルトでは、パターンのリストは "*IDENTIFIED*:*PASSWORD*" で、パスワードを参照するステートメントを無視します。 パターン一致では、大/小文字は区別されません。 パターン内では、特殊文字が 2 つあります。

追加のパターンを指定するには、--histignore オプションを使用するか、または MYSQL_HISTIGNORE 環境変数を設定します。 (両方を指定した場合はオプション値が優先されます。) この値は、コロンで区切られた 1 つ以上のパターンのリストである必要があり、デフォルトのパターンリストに追加されます。

コマンド行で指定されたパターンは。コマンドインタプリタで特殊な扱いを受けることを防ぐために、引用符で囲むかエスケープ処理を行う必要がある場合があります。 たとえば、パスワードを参照するステートメントに加えて UPDATE ステートメントおよび DELETE ステートメントのロギングを抑制するには、mysql を次のように呼び出します。

shell> mysql --histignore="*UPDATE*:*DELETE*"
履歴ファイルの制御

.mysql_history ファイルには、パスワードを含む SQL ステートメントのテキストなどの機密情報が書き込まれる場合があるため、制限付きアクセスモードで保護するようにしてください。 セクション6.1.2.1「パスワードセキュリティーのためのエンドユーザーガイドライン」を参照してください。 up-arrow キーを使用して履歴をリコールすると、ファイル内のステートメントに mysql クライアントからアクセスできます。 インタラクティブ履歴の無効化を参照してください。

履歴ファイルを維持しない場合は、.mysql_history が存在すればまずそれを削除します。 次の手法のいずれかを使用してふたたび作成されないようにします。

syslog ロギング特性

--syslog オプションが指定されている場合、mysql は対話型のステートメントをシステムロギング機能に書き込みます。 メッセージロギングには、次の特性があります。

ロギングは information レベルで行われます。 これは、Unix/Linux syslog 機能の syslog および Windows イベントログの EVENTLOG_INFORMATION_TYPELOG_INFO 優先度に対応します。 ロギング機能の構成については、システムのドキュメントを参照してください。

メッセージサイズは 1024 バイトに制限されています。

メッセージは、MysqlClient という識別子の後に次の値が続くもので構成されます:

次に、--syslog を使用して Linux で生成される出力のサンプルを示します。 この出力は読みやすくするためにフォーマットされており、ログに記録される各メッセージは実際には単一行を取ります。

Mar  7 12:39:25 myhost MysqlClient[20824]:
  SYSTEM_USER:'oscar', MYSQL_USER:'my_oscar', CONNECTION_ID:23,
  DB_SERVER:'127.0.0.1', DB:'--', QUERY:'USE test;'
Mar  7 12:39:28 myhost MysqlClient[20824]:
  SYSTEM_USER:'oscar', MYSQL_USER:'my_oscar', CONNECTION_ID:23,
  DB_SERVER:'127.0.0.1', DB:'test', QUERY:'SHOW TABLES;'