如何在 MySQL 中停用嚴格模式?


MySQL 嚴格模式控制著查詢中處理缺失或不正確值的方式,這些查詢會更改資料。這包括 CREATE TABLE、UPDATE 和 INSERT 語句。當嘗試在啟用 MySQL 嚴格模式(預設設定)的情況下處理查詢時,無效或缺失的資料可能會導致警告或錯誤。

如果嚴格模式關閉,相同的查詢會修改其缺失或不正確的資料,並會發出簡單的警告。這似乎是預期的結果,但當嚴格模式關閉時,某些操作可能會產生意外的影響。例如,如果正在新增一個值,並且它的字元數超過允許的字元數,則它將被截斷以適合。

MySQL 的嚴格模式始終處於開啟狀態。可以通過幾種不同的方式停用它。

透過 SQL 停用嚴格模式

可以使用以下命令透過這種方式在 MySQL 伺服器上停用嚴格模式。

mysql -u root -p -e "SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION';"

現在,您可以透過執行以下命令來驗證模式是否已設定 -

mysql -u root -p -e "SELECT @@GLOBAL.sql_mode;"

透過 my.cnf/my.ini 停用嚴格模式

  • 要進行編輯,請啟動 my.ini 或 my.cnf 檔案(您擁有的檔案取決於您是在執行 Windows 還是 Linux)。

  • 找到以下行

sql_mode = "STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
  • 將其更改為以下行

    如果找不到(如果不存在 [mysqld] 部分,則建立它),請在 [mysqld] 部分下插入該行。

Create mysqlId in the following way:
sql_mode= ""
  • 要使修改生效,請重新啟動 MySQL 服務。

    如果現在無法重新啟動,您可以進入資料庫伺服器並使用下面列出的命令使更改立即生效。如果沒有執行上述過程,則修改將在下次 MySQL 服務重新啟動時丟失。

set global sql_mode='';

無論 MySQL 管理員需要停用嚴格模式的原因是什麼,停用它都是一個簡單的過程。您可以使用此方法在伺服器上停用 MySQL 嚴格模式。

此規則適用於標準版、標準(多語言)版、企業版(MySQL)、企業多語言版(MySQL)、企業版(SQL Server)和企業版(MySQL)(SQL Server)

更新於: 2023年2月22日

2K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.