MySQLのストアドプロシージャからデバッグ情報を出力します

MySQLにデバッグメッセージをstdout、temptable、またはlogfileに出力する方法はありますか?何かのようなもの:

  • SQLServerで印刷する
  • OracleのDBMS_OUTPUT.PUT_LINE

解決

 

オプション1:これをプロシージャに入れて、実行時に「コメント」をstdoutに出力します。

SELECT 'コメント';

オプション2:これをプロシージャに入れて、変数を標準出力に出力します。

myvarINTのデフォルトを0と宣言します。
SET myvar = 5; 
SELECT concat( 'myvar is'、myvar);

これにより、プロシージャの実行時にmyvarが5からstdoutに出力されます。

オプション3、tmptableと呼ばれる1つのテキスト列を持つテーブルを作成し、それにメッセージをプッシュします。

myvarINTのデフォルトを0と宣言します。
SET myvar = 5; 
tmptableに挿入selectconcat( 'myvar is'、myvar);

上記をストアドプロシージャに入れることができるので、書く必要があるのはこれだけです。

CALL log(concat( '値は'、myvar));

これにより、いくつかのキーストロークを節約できます。

オプション4、メッセージをファイルに記録する

outfile '/ tmp / result.txt'にログインするときに「penguin」を選択します。

このコマンドには非常に厳しい制限があります。「others」グループに作成および書き込み権限を付与するディスク上の領域にのみ、出力ファイルを書き込むことができます。/ tmpディレクトリに保存すると機能するはずです。

また、一度出力ファイルを書き込むと、それを上書きすることはできません。これは、クラッカーがWebサイトにSQLを挿入し、MySQLで任意のコマンドを実行できるという理由だけで、クラッカーがボックスをルート化するのを防ぐためです。

https://www.it1352.com/618737.html

おすすめ

転載: blog.csdn.net/tjcwt2011/article/details/114895086