2017-02-28 5 views
0

source filenameコマンドの実行をmysqlで追跡して、実行されたSQLスクリプトのファイル名とパスを取得する方法を教えてください。 Googleは助けなかったし、正しいキーワードを使用しなかったかもしれない。
mysqlの `source filename`コマンドの実行を追跡する方法

私は(好ましくはエラーなし)source ./test/file.sql を実行するときだから私は、私が追跡する方法を見つけ出すことができれば、私が行うことができます(パスと一緒に)CURRENT_TIME、ファイル名と「source_history」テーブルのエントリをしたいです。誰でもコマンドsourceを追跡するには私を助けることができればそれは大きな助けになると思います。(テーブルに挿入または更新のためのトリガ・イベントのようなもの)

(することができ、すべてのコマンドを追跡

その意味でmysqlを終了している間にクエリの履歴を取得し、sourceを確認してください)

希望があります。

ありがとうございます。

答えて

1

sourceコマンドはMySQLコマンドではありません。問題は、command in MySQL's command line interfaceで、これもMySQLという名前です。

CLIは、ファイル内のsqlコマンドのみをMySQLサーバーに渡すため、サーバーはコマンドの実行に使用された正確なファイルを認識できません。時には、あなたはあなたのスクリプトがユーザーを する進捗情報を表示することがあり

MySQLの独自のドキュメントsourceコマンドは、(上記のリンクを参照してください)最も明白な解決策を提案しています。このためにはこのように文を挿入することができます。

SELECT '<info_to_display>' AS ' ';

だから、最も単純な方法は、パスのフィールドを持つテーブルを作成することで、イベントタイプは、(スタート/ストップ)とタイムスタンプとのinsertステートメントを追加します各バッチの開始と終了を記録し、insert文でハードコードされたファイルの名前を提供する各SQLファイルの開始と終了。これらのコマンドをSQLファイルに追加するスクリプトを作成することができます。

パラメータで.sqlファイルへのパスを受け取るバッチファイルを作成し、MySQLのCLIを呼び出し、mysqlでバッチプロセスの開始を記録し、.sqlファイルを起動し、 MySQLのバッチ。

+0

実際には、ここで質問を投稿する前に、スクリプトまたはエイリアスを使ってすべての.sqlファイルに行を追加してSQLスクリプトを実行することを考えました。より良い実現可能な解決策が期待される。これは最高のものとは確信していませんが、有用なものです。あなたの答えにお返事ありがとう! –

関連する問題