mysaql error mysql

MySql5 を起動する際に、[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).という警告が出ることあり。

D:¥app¥mysql5.6.21¥bin>mysqld.exe

[Warning] TIMESTAMP with implicit DEFAULT value is depreca
ted. Please use --explicit_defaults_for_timestamp server option (see documentati
on for more details).
とりあえず警告を出なくしたいという人は以下の設定を my.ini に追加する。

my.ini の設定例

explicit_defaults_for_timestamp = TRUE
MySQL5.6.6 より前のバージョンでは、timestamp 型の列をテーブルに含める場合、明示的に属性を指定しなくても、NOT NULL などの属性が自動で付与されていました。

しかし、MySQL5.6.6 以降では、このような暗黙的な属性付与は非推奨となった為、従来の暗黙的な属性付与が行われる設定になっている場合は警告がでます。

explicit_defaults_for_timestamp = TRUE という設定をすることで、この暗黙の属性付与は行われなくなりますので、起動時の警告も表示されなくなります。

今後はこのような暗黙の属性付与は廃止になる可能性がありますので、廃止になったときに慌てて対応することがないように、できればこの設定を行って、timestamp 列の属性を明示的に指定するよう変更しておいた方が良い




MySQL サーバに root でログインし、以下のようにして explicit_defaults_for_timestamp の値を確認する。

mysql> show variables like explicit_defaults_for_timestamp ;
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| explicit_defaults_for_timestamp | ON |
+---------------------------------+-------+
1 row in set (0.22 sec)
ON になった。
明示的に timestamp 型にデフォルト値を設定しないといけないということ