簡體   English   中英

sql_mode無法更新,即使我在my.cnf中進行了更改

[英]sql_mode not updating, even though I've changed it in my.cnf

我正在嘗試調整從mySQL 5.5服務器移至5.7服務器的數據庫。 它抱怨日期為0000-00-00格式。 我正在嘗試解決此問題,但我無法克服這些錯誤。

my.cnf中 ,我有:

sql_mode=ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,TRADITIONAL,ALLOW_INVALID_DATES

我重新啟動mySQL,然后在phpmyadmin中執行以下操作:

SHOW VARIABLES LIKE 'sql_mode' 

但是它顯示了完全錯誤/不同的列表!

sql_mode
STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ALLOW_INVALID_DATES,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

我究竟做錯了什么? 這真讓我發瘋!

根據手冊TRADITIONAL包括其他幾種模式:

傳統的

在MySQL 5.7.4之前和MySQL 5.7.8及更高版本中, TRADITIONAL等效於STRICT_TRANS_TABLES, STRICT_ALL_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USERNO_ENGINE_SUBSTITUTION

從MySQL 5.7.4到5.7.7, TRADITIONAL等效於STRICT_TRANS_TABLES, STRICT_ALL_TABLES, NO_AUTO_CREATE_USERNO_ENGINE_SUBSTITUTION 未命名NO_ZERO_IN_DATE, NO_ZERO_DATEERROR_FOR_DIVISION_BY_ZERO模式,因為在這些版本中,它們的效果包括在嚴格的SQL模式的效果( STRICT_ALL_TABLESSTRICT_TRANS_TABLES )中。 因此,在所有MySQL 5.7版本中, TRADITIONAL的效果都相同(與MySQL 5.6中的效果相同)。 有關其他討論,請參見MySQL 5.7中的SQL模式更改。

因此,期望該模式的擴展,並且您的兩種模式對於MySQL 5.7.8+是等效的。 實際上,對sql模式設置進行了評估:例如,您可以看到最終模式包括配置文件中定義的非默認ALLOW_INVALID_DATES

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM