网站服务器的MYSQL升级到了5.7版本,升级完之后,打开网站便报错数据库,阅读相关文档,发现MYSQL5.7版本的“严格模式”是打开的。
严格模式控制MySQL如何处理非法或丢失的输入值的SQL。有几种原因可以使一个值为非法。例如,数据类型错误或超出范围。当新插入的行不包含某列的没有显示定义DEFAULT子句的值,则该值被丢失。
对于事务表,当启用STRICT_ALL_TABLES或STRICT_TRANS_TABLES模式时,如果语句中有非法或丢失值,则会出现错误。SQL语句被回滚。
对于非事务表,STRICT_TRANS_TABLES,MySQL将非法值转换为最接近该列的合法值并插入调整后的值。如果值丢失,MySQL在列中插入隐式 默认值。在任何情况下,MySQL都会生成阻止的提示而不是给出错误并继续执行语句。
如果不使用严格模式(即不启用STRICT_TRANS_TABLES或STRICT_ALL_TABLES模式),对于丢失的值,MySQL将插入调整后的值并给出提示。在严格模式,可以通过INSERT IGNORE或UPDATE IGNORE来实现。
关闭的方法
Linux:打开MYSQL的安装目录 - 找到my.cnf 进行编辑 - 查找
sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
修改为
sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
若找不到就在[mysqld]下添加即可。
重启MYSQL:
sudo /etc/init.d/mysql restart
Windows:在MYSQL安装目录中找到mysql.ini - 同Linux一样修改 - 然后重启MYSQL或者服务器。
1、文章版权归作者所有,未经允许请勿转载。
2、本站所有文章,如无特殊说明或标注,均为本站原创发布。任何在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们邮箱:526009505@qq.com进行处理。
3、咨询请联系QQ:526009505
2、本站所有文章,如无特殊说明或标注,均为本站原创发布。任何在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们邮箱:526009505@qq.com进行处理。
3、咨询请联系QQ:526009505
你可能也喜欢
- ♥ 更改WordPress域名时的MySQL代码的教程06/24
- ♥ MySQL语句汇总06/20
- ♥ 解决宝塔面板 MySQL 数据库自动停止的方法06/12
- ♥ Mysql数据库中replace函数的用法教程05/20
- ♥ mysql删除全部数据表的方法08/26
- ♥ 常用的WordPress数据库维护SQL语句命令07/24