如何在 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)
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP