2017-05-19 11 views
0

私は開発環境をセットアップしています。mysqldでエラーを発生させる方法

MySQLのログが期待どおりに機能するかどうか確認したいと思います。

どうすればPHPからプログラムで実行できますか?

<?php 

$pdo = new \PDO(
    'mysql:host=localhost;', 
    'root', 
    '' 
); 
$result = $pdo->query("signal sqlstate '45000' set message_text = 'Triggering error on purpose (test)';"); 

?> 

しかし、これはエラー・ログにエラーをトリガしません:

Inspired by this answerは、私は単にこのような最小限のテストを実行しました。 /var/log/mysql/error.log)のエラーがあります。

私はMac OS X上でDockerの中でUbuntu 16.04を実行しています。

これはプログラミングとsysadminの間のクロスロードでの質問です。もっと関連性があると思われる場合はAskUbuntuに移行してください。

+0

mysqldsログファイルに何か書き込まれることを期待していますか?これにより、クライアントが処理するエラーが発生します。 – Mikpa

+0

@Mikpaわかりやすさのために質問を編集しました。私は '/ var/log/mysql /'( 'error.log'内)のエラーを期待していました。上記のコードがログのエラーを引き起こしているということですか? –

+0

信号sqlstate 45000が呼び出し側プログラムにエラーを出しますが、通常はerror.logに渡されません。 Read this http://www.mysqltutorial.org/mysql-signal-resignal/ – Mikpa

答えて

1

mysql error.logには、呼び出し元プログラムのエラーはありません。

Se error.logのマニュアル。

+1

"エラーログには、mysqldの起動とシャットダウン時間、起動とシャットダウン時に発生する進捗メモ、およびサーバが起動している間に発生する重大なエラーランニング。 mysqldが自動的にチェックまたは修復する必要のあるテーブルに気づいた場合、エラーログにメッセージを書き込みます。「そうすれば、MySQLエラーよりもデータベースエラーのApacheエラーログを監視する方が良いでしょう。 –

+0

はい、正しいです – Mikpa

関連する問題