MySQL [Warning] TIMESTAMP with implicit DEFAULT value is deprecated(報錯信息解決)
MySQL使用過程中可能會遇到一些報錯信息。本文將介紹一些常見的MySQL報錯信息,并提供相應的解決方法。
報錯信息
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). [Warning] 'ERROR_FOR_DIVISION_BY_ZERO' is deprecated and will be removed in a future release. [Warning] 'NO_ZERO_DATE' is deprecated and will be removed in a future release. [Warning] 'NO_ZERO_IN_DATE' is deprecated and will be removed in a future release.
TIMESTAMP with implicit DEFAULT value is deprecated
當在MySQL中創(chuàng)建表時,如果使用了隱式默認值的TIMESTAMP類型,會收到此警告信息。這是因為隱式默認值的TIMESTAMP類型在未來的版本中將被棄用。為了解決這個問題,我們可以在MySQL的配置文件中進行相應的設置。
打開MySQL的配置文件(my.ini或者my.cnf),找到包含[mysqld]的段落,在該段落中添加以下行:
explicit_defaults_for_timestamp=true
這樣設置后,MySQL將不再使用隱式默認值的TIMESTAMP類型,而是需要顯式地指定默認值。
'ERROR_FOR_DIVISION_BY_ZERO' is deprecated and will be removed in a future release
當在MySQL中進行除零操作時,如果使用了ERROR_FOR_DIVISION_BY_ZERO模式,會收到此警告信息。這是因為ERROR_FOR_DIVISION_BY_ZERO模式在未來的版本中將被移除。為了解決這個問題,我們需要修改MySQL的sql_mode設置。
在MySQL的配置文件中,找到sql_mode的設置項,將其中包含ERROR_FOR_DIVISION_BY_ZERO的部分移除。例如,將以下設置:
sql_mode="ONLY_FULL_GROUP_BY,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES"
修改為:
sql_mode="ONLY_FULL_GROUP_BY,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES"
這樣設置后,MySQL將不再使用ERROR_FOR_DIVISION_BY_ZERO模式,從而避免報錯。
'NO_ZERO_DATE' and 'NO_ZERO_IN_DATE' are deprecated and will be removed in a future release
當在MySQL中插入或更新日期列時,如果使用了NO_ZERO_DATE或NO_ZERO_IN_DATE模式,會收到此警告信息。這是因為NO_ZERO_DATE和NO_ZERO_IN_DATE模式在未來的版本中將被移除。為了解決這個問題,我們需要修改MySQL的sql_mode設置。
在MySQL的配置文件中,找到sql_mode的設置項,將其中包含NO_ZERO_DATE和NO_ZERO_IN_DATE的部分移除。例如,將以下設置:
sql_mode="ONLY_FULL_GROUP_BY,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES"
修改為:
sql_mode="ONLY_FULL_GROUP_BY,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES"
這樣設置后,MySQL將不再使用NO_ZERO_DATE和NO_ZERO_IN_DATE模式,從而避免報錯。
通過以上的設置,可以解決一些常見的MySQL報錯問題,確保數(shù)據(jù)庫的正常運行。
到此這篇關于MySQL [Warning] TIMESTAMP with implicit DEFAULT value is deprecated(報錯信息解決)的文章就介紹到這了,更多相關mysql報錯信息內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
千萬級記錄的Discuz論壇導致MySQL CPU 100%的優(yōu)化筆記
談到自己在解決一個擁有 60 萬條記錄的 MySQL 數(shù)據(jù)庫訪問時,導致 MySQL CPU 占用 100% 的經(jīng)過。在解決問題完成優(yōu)化(optimize)之后,我發(fā)現(xiàn) Discuz 論壇也存在這個問題,當時稍微提了一下2010-12-12