更改數據的查詢中缺失值或不正確值的處理由 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)
以上就是如何在 MySQL 中禁用嚴格模式?的詳細內容,更多請關注www.92cms.cn其它相關文章!