MariaDBサーバー(バージョン10.1.23)から別のMariaDBサーバー(バージョン10.1.37)にバックアップを復元する必要があります。しかし、このバージョンにはデフォルトで非常に厳密なモードがあり、タイムスタンプフィールドにNULL値を許可しないため、バックアップを復元すると以下のエラーがスローされます。
1067-'dt'の無効なデフォルト値
この値を/etc/mysql/conf.d/の* .cnfファイルに追加してみます
[mysqld]
sql_mode=ALLOW_INVALID_DATES,IGNORE_SPACE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
explicit_defaults_for_timestamp=OFF
クエリ:
show variables like 'sql_mode';
show variables like 'explicit_defaults_for_timestamp';
変数の変更された値を表示しますが、機能しません。どうして?
ALTER TABLE table_name
MODIFY dt TIMESTAMP NULL;
これにより、名前table_nameのテーブルが変更され、列dtがNULL可能に設定されます。