一部のシステムにいくつかのデータベースクエリを直接行っている人がいます。MySQL対話型クエリのログ
バイナリクライアントmysql
を使用して実行されたすべてのクエリは、対話的に/手作業で行われたすべてのクエリ、または失敗したセキュアなsyslogサーバにログします。私は
がどのように私はそれを達成でき5.6.31 Debianのジェシー、およびOracleのMySQLを使用しています
?
一部のシステムにいくつかのデータベースクエリを直接行っている人がいます。MySQL対話型クエリのログ
バイナリクライアントmysql
を使用して実行されたすべてのクエリは、対話的に/手作業で行われたすべてのクエリ、または失敗したセキュアなsyslogサーバにログします。私は
がどのように私はそれを達成でき5.6.31 Debianのジェシー、およびOracleのMySQLを使用しています
?
MySQL 5.7から正しく検出されたので、syslog
にログするオプションが追加されました。あなたは上記の持っているよう
代わりにコマンドにエイリアスを作成するには、代わりに
[mysql]
syslog
のようにあなたの/etc/mysql/my.cnf
や/etc/mysql/conf.d/
内のファイルのいずれかの[mysql]
セクションにsyslog
を追加することができ、このもlogwatch
に簡単に統合できます。
MySQL 5.7以降では、mysql
コマンドは--syslogオプションを受け入れます。そこで、テストシステムをMySQL 5.7にアップグレードしました。 私はMySQL 5.7 Reference Manual - mysql Loggingからmysql
からmysql --syslog
に
をエイリアスを行います
のsyslogロギング特性
--syslogオプションが指定されている場合、MySQLはシステムロギングファシリティへのインタラクティブステートメント を書き込みます。メッセージのログには、次のような特徴があります( )。
ログは "情報"レベルで発生します。これは、Unix/Linux syslog機能でsyslogの場合は LOG_INFOの優先順位に、Windowsイベントログでは EVENTLOG_INFORMATION_TYPEに対応します。ロギング機能の設定については、 システムのマニュアルを参照してください。
メッセージサイズは1024バイトに制限されています。ユーザが未知である場合 -
SYSTEM_USER
システムのユーザー名(ログイン名)または:
メッセージは、これらの 値が続く識別子はmysqlclientから成ります。
MYSQL_USER
MySQLユーザ名(--userオプションで指定)または - ユーザーが不明である場合。
CONNECTION_ID:
クライアント接続識別子。これは、セッション内の CONNECTION_ID()関数の値と同じです。
DB_SERVER
サーバーホストまたは - ホストが不明の場合。
DB
デフォルトのデータベースまたは - 何のデータベースが選択されていない場合。
クエリー
ログされたステートメントのテキスト。
ここでは、Linuxで--syslogを使用して生成される出力のサンプルを示します。この 出力は読みやすいように書式設定されています。実際に記録された各メッセージは、 が1行です。
3月7日12時39分二十五秒myhostのあるmysqlclient [20824]:SYSTEM_USER: 'オスカー' MYSQL_USER 'my_oscar'、CONNECTION_ID:23、DB_SERVER: '127.0.0.1'、 DB: ' - '、 QUERY: 'USEテスト' DB_SERVER: '127.0.0.1'、DB: 'test'、QUERY: 'SHOW'、 'MY_OSCAR'、CONNECTION_ID:23、
DB_SERVER: '127.0.0.1'テーブル;
エイリアスを作成する代わりに、 '/ etc/mysql/my.cnf'ファイルまたは'/etc/mysql/conf.d/'のファイルの' [mysql] 'セクションに' syslog'を追加することができます – Alasdair
@ Alasdair答えを加えてください、私はそれを受け入れます。 –
私はあなたがクライアントソフトウェアでフィルタリングすることはできませんが、唯一の選択肢はすべてのクエリを記録すること、またはクエリを遅くすることだけです。 (もちろん、サーバーが接続を受け取ると、キーボードで入力したか、SQLが以前に生成されたかを知る方法がありません。) –
ありがとう@ÁlvaroGonzález;過去に私は可能な解決策を見出していたことを忘れていましたが、MySQL 5.7がまだベータ版だった頃には、私はそれに答えました。 –