Invalid default value for timestamp field
MySQL 除錯 Debug: Invalid default value for timestamp field
在異動資料庫欄位時,發生 timestamp 欄位沒辦法將預設值設定為 ‘0000-00-00 00:00:00’,表示 資料庫的模式(Server SQL Modes)
有 NO_ZERO_DATE
,所以才導致資料庫的時間必須依定要指定時間。
檢查目前所有的 SQL Mode
在資料庫中下查詢,查詢目前的所有 sql_mode
SHOW VARIABLES LIKE 'sql_mode'
-- ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
確認一下資料庫中的 sql_mode 有沒有 NO_ZERO_IN_DATE
修正 NO_ZERO_IN_DATE 問題
1. 修改 MySQL 設定檔
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
2. 加入 sql_mode 設定
可以將原本的設定全部設定進去,然後把 NO_ZERO_IN_DATE
移除掉即可
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
3. 重新啟動 MySQL
sudo service mysql restart