加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

如何关掉mysql的严格模式

发布时间:2023-04-30 13:30:08 所属栏目:MySql教程 来源:
导读:本篇内容介绍了“如何关闭mysql的严格模式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
本篇内容介绍了“如何关闭mysql的严格模式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
 
关闭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
 
扩展知识:严格模式 与 非严格模式(宽松模式)对比
 
不支持对not null字段插入null值
 
不支持对自增长字段插入”值
 
不支持text字段有默认值
 
例子:
 
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严格模式可以使数据更加安全严格,缺点是减少了对空数据入库的兼容性。建议开发环境使用严格模式以提高代码的质量及对数据的严谨性。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!