mysql的服务器在什么模式下工作_MySQL服务器的SQL模式 (转)
转自: http://blog.csdn.net/kumu_linux/article/details/8185912
sql_mode的系统变量可以调控MySQL的SQL模式
任何一个客户端可以在不影响其它客户端的情况下改变MySQL服务器对自己的反应
如果想在MySQL启动时设置SQL模式,可以在mysql配置文件中添加sql_mode选项
sql-mode=”TRADITIONAL”
如果在运行过程中修改SQL模式,则可以使用如下命令
mysql>set sql_mode="TRADITIONAL";
Client1
mysql> show variables like "sql_mode";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| sql_mode | |
+---------------+-------+
1 row in set (0.00 sec)
mysql> set sql_mode="TRADITIONAL";
Query OK, 0 rows affected(0.23 sec)
mysql>show variables like "sql_mode";
+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
|Variable_name | Value |
+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
|sql_mode |STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION|
+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
1 rowin set (0.00 sec)
mysql>
Client2
Client1已经修改了SQL模式,但是Client2的SQL模式没有改变,这就说明客户端之间的模式修改是互相不影响的
mysql>show variables like "sql_mode";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| sql_mode | |
+---------------+-------+
1 row in set (0.00 sec)
mysql>
设置全局变量(设置全局变量设置,需要加上GLOBAL关键字,需要SUPER权限)
mysql> set globalsql_mode="traditional";
Query OK, 0 rows affected(0.02 sec)
select @@session.sql_mode
--》查看当前会话sql模式
select @@GLOBAL.sql_mode
--》查看系统会话sql模式
设置全局变量后,新连接的客户端默认的就是全局的SQL模式
转自 http://blog.csdn.net/wyzxg/article/details/8787878
author:skate
time:2013/04/11
mysql的sql_mode合理设置
sql_mode是个很容易被忽视的变量,默认值是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入。在生产环境必须将这个值设置为严格模式,所以开发、测试环境的数据库也必须要设置,这样在开发测试阶段就可以发现问题
sql_mode常用值如下:
ONLY_FULL_GROUP_BY:
对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中
NO_AUTO_VALUE_ON_ZERO:
该值影响自增长列的插入。默认设置下,插入0或NULL代表生成下一个自增长值。如果用户 希望插入的值为0,而该列又是自增长的,那么这个选项就有用了。
STRICT_TRANS_TABLES:
在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制
NO_ZERO_IN_DATE:
在严格模式下,不允许日期和月份为零
NO_ZERO_DATE:
设置该值,mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告。
ERROR_FOR_DIVISION_BY_ZERO:
在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。如 果未给出该模式,那么数据被零除时MySQL返回NULL
NO_AUTO_CREATE_USER:
禁止GRANT创建密码为空的用户
NO_ENGINE_SUBSTITUTION:
如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常
PIPES_AS_CONCAT:
将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似
ANSI_QUOTES:
启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符
ORACLE的sql_mode设置等同:PIPES_AS_CONCAT, ANSI_QUOTES, IGNORE_SPACE, NO_KEY_OPTIONS, NO_TABLE_OPTIONS, NO_FIELD_OPTIONS, NO_AUTO_CREATE_USER.
如果使用mysql,为了继续保留大家使用oracle的习惯,可以对mysql的sql_mode设置如下:
在my.cnf添加如下配置
[mysqld]
sql_mode='ONLY_FULL_GROUP_BY,NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT,ANSI_QUOTES'
mysql的服务器在什么模式下工作_MySQL服务器的SQL模式 (转)相关推荐
- Qt Creator在编辑模式下工作
Qt Creator在编辑模式下工作 在编辑模式下工作 使用编辑器工具栏 在打开的文件和符号之间导航 选择解析上下文 更改文字编码 选择行尾样式 分割编辑器视图 使用书签 转到符号定义或声明 重新解析 ...
- linux 返回非法指令,linux – ARM Cortex A7在内核模式下返回PMCCNTR = 0,在用户模式下返回非法指令(即使在PMUSERENR = 1之后)...
我想在Raspberry Pi 2上读取循环计数寄存器(PMCCNTR),它有一个ARM Cortex A7内核.我为它编译了一个内核模块,如下所示: #include #include int in ...
- 在批处理模式下使用mysql_3.5 在批处理模式下使用mysql
在前面的章节中,你交互式地使用mysql输入查询而且查看结果.你也能够以批模式执行mysql.为了做到这些.把你想要执行的命令放在一个文件里,然后告诉mysql从文件读取它的输入: shell> ...
- linux服务器的功能需求,Linux下的各种服务器技术及配置 (毕业论文).doc
Linux下的各种服务器技术及配置 (毕业论文) PAGE 26 PAGE 27 Linux下的各种服务器技术及配置 姓 名: 学 号: 指导老师: 系 名: 专 业: 班 级: . 二00一二年 十 ...
- ahci模式下无法启动Linux,电脑AHCI模式无法开启是怎么回事?
安装之前就要开启ahci,然后安装系统,如果在ide模式下安装了,是不能随意的改到ahci的!你的情况只能重装系统解决了!看看你的主板,有没有第三方芯片的sata口,如果有,你把第三方芯片的sata口 ...
- vim介绍,vim颜色显示,vim一般模式下移动光标,vim一般模式下的复制、剪切和粘贴...
2019独角兽企业重金招聘Python工程师标准>>> vim介绍 vim是vi的升级版,相较于vi,会显示颜色. 如果系统没有vim工具,需要安装:# yum install -y ...
- wincc服务器系统,什么情况下用wincc服务器与客户端
什么情况下用wincc服务器与客户端 内容精选 换一换 当创建文件系统后,您需要使用云服务器来挂载该文件系统,以实现多个云服务器共享使用文件系统的目的.CIFS类型的文件系统不支持使用Linux操作系 ...
- 【RenPy】关于ADV模式下say语句输出在NVL模式中文本框的问题
问题描述: define narrator = nvl_narratorlabel start:narrator """内容1......内容2......内容3.... ...
- 命令行界面命令模式及相互切换、交换机命令行操作模式及模式间的切换过程、命令行界面基本功能、命令的快捷键功能、交换机基本配置命令、交换机特权模式下基本命令、交换机全局配置模式下基本命令、
1.命令行界面命令模式及相互切换 锐捷交换机命令行管理界面分成若干不同的模式,用户当前所处的命令模式决定了可以使用的命令,不可跨模式执行命令.以下给出三种基本模式. 用户模式(User EXE ...
最新文章
- 显示Flash时控制其的宽度与高度
- SM04在线用户管理
- 是银弹吗?业务基线方法论
- java join 异常_Java:守护进程:thread.join()没有完成,当在一个线程中抛出异常时...
- 腾讯视频真实下载地址_腾讯视频如何多倍速播放视频
- 【经验】在CSS中定义超链接样式a:link、a:visited、a:hover、a:active的顺序
- Triumph X发布著名摄影师Kim Joong-man首个NFT系列
- aspx 修改了样式但是在点击按钮后被刷新_135编辑器使用教程|动画按钮到底在哪里啊?...
- mysql 常用管理命令
- A non well formed numeric value encountered
- 汽车CAN总线-基础
- python 数字转换为汉字大写
- apache基金会开源项目简介
- Vue Cli+高德API实现模糊搜索+返回坐标及信息
- 教程 | 用安卓手机搭建 web 服务器(二)—— Nginx 安装配置
- 人生若只如初见,何事秋风悲画扇。
- python对mp3格式文件标题专辑封面等信息修改
- Android 线程与消息 机制 15问15答
- 数字人民币概论、特征、架构介绍
- Java程序调用MATLAB接口