管理mysql數據嚴格模式,和安全模式處理


最近使用mysql數據庫高一點的版本遇到了,插入和修改等語句失敗情況。語句沒有錯誤,但是workbench提示 Field 'id' doesn't have a default value。原因是

數據庫開啟了嚴格模式,以插入語句來說 語句中包含多列空值時,則不允許插入。如果確實需要插入多列空值的情況下。則就需要關閉嚴格審查模式了

關閉方法,首先找到mysql的安裝目錄下的.ini文件,以默認安裝目錄來說一般存在

C:\ProgramData\MySQL\MySQL Server 5.6\my.ini

在別的服務器運行我的網站程序的時候,出現了Field 'id' doesn't have a default value 的提示,意思是這個值我沒有提交數據,並且數據庫結構沒有設置默認值,由於對方的mysql服務器開啟了STRICT_TRANS_TABLES嚴格模式,所以報錯了

解決方法是:

如果自己的服務器,有權限修改my.ini的話,打開my.ini,查找 sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

修改為

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

然后重啟MYSQL

在別人的虛擬空間上當然不可能實現,所以根本的解決方法還是修改自己的數據結構,把非空的字段加上默認值,以后設計數據庫要注意這一點,方便程序的移植

 

安全模式處理

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Queries and reconnect. 0.000 sec

 

原因是你執行更新和刪除語句沒有使用主鍵條件作為條件

臨時關閉數據庫限制

執行命令SET SQL_SAFE_UPDATES = 0;修改下數據庫模式

SET SQL_SAFE_UPDATES = 0

使用完之后關閉

如果想要提高數據庫安全等級,可以在恢復回原有的設置,執行命令:SET SQL_SAFE_UPDATES = 1;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM