我试图在mysql中设置sql_mode,但会引发错误。
命令:
set global sql_mode='NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLE','NO_AUTO_CREATE_USER','NO_ENGINE_SUBSTITUTION' 这不是设置多种模式的正确方法吗?设置会话和全局模式的优点是什么?哪有?我有不同的用户尝试使用不同的UNC值更新数据库,并插入od将会话模式设置为“ NO_BACKSLASH_ESCAPES”,尽管为此我可以使用一种通用的模式。这有意义吗?
请告诉我。
谢谢。
顺便说一句,如果您在MySQL中设置全局变量:
SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION'; SET SESSION sql_mode = 'NO_ENGINE_SUBSTITUTION'; 这不会永久设置它,它将在每次重新启动后还原。
因此,您应该在配置文件中进行设置(例如/etc/mysql/my.cnf在[mysqld]部分中),以使更改在MySQL重新启动后仍然有效:
配置文件:/etc/mysql/my.cnf
[mysqld] sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 更新:较新版本的Mysql(例如5.7.8或更高版本)可能需要稍微不同的语法:
[mysqld] sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION" 确保sql-mode没有下划线之间有破折号,并且模式用双引号引起来。
请始终参考您所用版本的MySQL文档,以查看sql-mode选项。来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。