MySQL の warnings をすぐに表示させる方法
2007-10-01-1: [MySQL]
mysql コマンドを直接たたいているときに、warning と表示されることがあります。
例えば、次のような場合です。
mysql> CREATE TABLE test (id int) TYPE=InnoDB;
Query OK, 0 rows affected, 1 warning (0.03 sec)
この場合 warning が 1 つ発生しています。どういった warning が発生しているかを確認するには、SHOW WARNINGS をしてみるとわかります。
mysql> SHOW WARNINGS\G
*************************** 1. row ***************************
Level: Warning
Code: 1287
Message: 'TYPE=storage_engine' is deprecated; use 'ENGINE=storage_engine' instead
1 row in set (0.02 sec)
Message がそれにあたります。ちなみに、SHOW WARNINGS は MySQL 4.1.0 から導入されています。
- MySQL AB :: MySQL 4.1 リファレンスマニュアル :: 4.6.8.9 SHOW WARNINGS | ERRORS
http://dev.mysql.com/doc/refman/4.1/ja/show-warnings.html
さて、本題ですが、warning を見るためにいちいち SHOW WARNINGS をタイプするのは面倒です。
そこで、--show-warnings オプションを紹介します。マニュアルによると以下のように説明されています。
警告が存在する場合、各ステートメント後に表示させます。このオプションはインタラクティブとバッチモードにのみ対応しています。
ただし、このオプションは MySQL 5.0.x から用意されているようです (手元にある 5.0.37 では実装されていました)。
使い方は、いたって簡単で --show-warnings オプションをつけるだけです。
$ mysql --show-warnings -uroot -p test
上記と同じように warning が表示される SQL を入力しています。
mysql> CREATE TABLE test (id int) TYPE=InnoDB;
Query OK, 0 rows affected, 1 warning (0.01 sec)
Warning (Code 1287): 'TYPE=storage_engine' is deprecated; use 'ENGINE=storage_engine' instead
見てのとおり、警告がすぐに表示されました。
もちろん、~/.my.cnf などに書いても問題ありません。
[mysql]
show-warngins
- MySQL AB :: MySQL 5.1 リファレンスマニュアル :: 7.7.1 mysql オプション
http://dev.mysql.com/doc/refman/5.1/ja/mysql-command-options.html#id268974 ...