關閉mysql嚴格模式的方法:1、開啟並編輯mysql設定檔「my.cnf」;2、搜尋「sql-mode」關鍵字,將「sql-mode」的相關語句註解掉; 3.使用「service mysqld restart」指令重啟mysql即可。
本教學操作環境:linux5.9.8系統、mysql8版本、Dell G3電腦。
查看 Mysql 是否開啟嚴格模式:
#開啟 MySQL 設定檔 my.cnf(windows為my.ini)。
搜尋 sql-mode 如果搜尋不到就代表 非嚴格模式 。
搜尋到了就代表開啟了嚴格模式,例如:
sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#開啟關閉嚴格模式
##開啟嚴格模式:
vi /etc/my.cnf #编辑mysql配置文件 搜索sql-mode关键字,若没有,在文件尾添加一行 替换成: sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION service mysqld restart 重启mysql
關閉嚴格模式:
vi /etc/my.cnf #编辑mysql配置文件 搜索sql-mode关键字。注释sql-mode相关语句 #sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION service mysqld restart 重启mysql
擴充知識:嚴格模式與非嚴格模式(寬鬆模式)對比
範例:
CREATE TABLE `test_table` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `content` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;1 not null欄位插入null值測試插入一筆記錄,name的值為null在非嚴格模式下執行
mysql> insert into test_table(content) values('51ask'); Query OK, 1 row affected, 1 warning (0.00 sec) mysql> select * from test_table; +----+------+------------+ | id | name | content | +----+------+------------+ | 1 | | 51ask | +----+------+------------+ 1 row in set (0.00 sec) #执行成功在嚴格模式下執行
mysql> insert into test_table(content) values('51ask'); ERROR 1364 (HY000): Field 'name' doesn't have a default value #执行失败,提示字段name不能为null值
上述三點不再一一做測試。
由此可見:使用mysql嚴格模式可以使資料更加安全嚴格,缺點是減少了對空資料入庫的兼容性。建議開發環境使用嚴格模式以提高程式碼的品質及對資料的嚴謹性。
相關推薦:以上是怎麼關閉mysql的嚴格模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!