mysql内置的变量,MySQL服务器模式及相关内置变量

本章我们主要包含两部分的内容:

MySQL服务器模式

MySQL内置变量

1. MySQL服务器模式

不同的MySQL客户端可以通过不同的模式操作MySQL Server。DBA可以设置一个全局模式,而每个应用程序可以根据需要为相应的会话设置不同的模式。

MySQL操作模式会影响到SQL的语法和相应的SQL语句的校验。

1.1 设置SQL模式

默认情况下SQL的模式是NO_ENGINE_SUBSTITUTION。如果要在MySQL Server启动的时候就设置好相应的SQL模式的话,可以使用--sql-mode=命令行选项来进行设置,也可以在MySQL配置文件中通过sql-mode=来进行配置。是由一系列由空格分隔的不同的模式组成。如果要清除SQL模式,则只需要在启动时传递--sql-mode=""或者在配置文件中配置sql-mode=""。

如果需要在运行时更改SQL模式,那么可以设置全局与会话 sql_mode系统变量:

SET GLOBAL sql_mode = 'modes';

SET SESSION sql_mode = 'modes';

对于设置全局变量,需要有SUPER权限,并且会影响到之后连接的所有客户端。对于设置会话变量,则只会影响到当前客户端。每个客户端都可以改变该会话的sql_mode。

可以通过如下命令来获取当前全局及会话sql_mode:

SELECT @@GLOBAL.sql_mode;

SELECT @@SESSION.sql_mode;

1.2 最重要的SQL模式

SQL有很多模式,下面我们介绍几种常用的重要的SQL模式:

ANSI: 该模式会改变相应的语法和操作行为,以使最接近标准的SQL。它是一种特殊的组合模式(combination modes)。

STRICT_TRANS_TABLES: 假如一个值并不能插入到一个“事务表”中,那么中断该语句的执行。

TRANDITIONAL: 使MySQL接近于传统的SQL数据库系统。简单的描述即为“在插入错误的值到一列时直接返回错误,而不是警告”。

2. 获取服务器元数据

MySQL有很多元数据,这里我们列出几个常用的:

SELECT VERSION(): 服务器版本信息

SELECT DATABASE(): 当前数据库名(或者返回为NULL)

SELECT USER(): 当前用户名

SHOW STATUS: 服务器状态

SHOW VARIABLES: 获取当前会话的配置变量

3. 修改MySQL系统变量

下面以设置MySQL 系统变量wait_timeout为例。

3.1 设置全局变量

1) 修改参数文件,然后重启MySQL

# vi /etc/my.cnf

[mysqld]

wait_timeout=10

# service mysqld restart

此种方法太过生硬,并且要重启MySQL,一般不推荐。

2) 在命令行通过SET来设置,然后再修改参数文件

如果要修改全局变量,必须要显示指定GLOBAL或者@@global.,同时必须要有SUPER权限:

mysql> SET GLOBAL wait_timeout=10;

or

mysql> set @@global.wait_timeout=10;

然后通过下面的命令查看设置是否成功:

然后查看设置是否成功:

mysql> SELECT @@global.wait_timeout=10;

or

mysql> SHOW GLOBAL variables like 'wait_timeout';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| wait_timeout | 10 |

+---------------+-------+

如果查询时使用的是SHOW VARIABLES的话,会发现设置并没有生效,除非重新登录再查看。这是因为使用SHOW VARIABLES的话就等同于使用SHOW SESSION VARIABLES,查询的是会话变量,只有使用SHOW GLOBAL VARIABLES查询的才是全局变量。如果仅仅想修改会话变量的话,可以使用类似SET wait_timeout=10;或SET SESSION wait_timeout=10;`这样的语法。

当前只修改了正在运行的MySQL实例参数,但下次重启mysqld又会回到默认值,所以别忘了修改参数文件:

# vi /etc/my.cnf

[mysqld]

wait_timeout=10

3.2 修改会话变量

如果要修改会话变量值,可以指定SESSION或者LOCAL关键字,或者通过@@session、@@local、@@限定符, 又或者不加任何关键字与限定符。例如:

SET SESSION wait_timeout = 10;

or

SET LOCAL wait_timeout = 10;

or

SET @@session.wait_timeout = 10;

or

SET @@local.wait_timeout = 10;

or

SET @@wait_timetout = 10;

or

SET wait_timeout = 10;

然后查看设置是否成功:

mysql> select @@wait_timeout;

or

mysql> select @@session.wait_timeout;

or

mysql> select @@local.wait_timeout;

or

mysql> show variables like 'wait_timeout';

or

mysql> show local variables like 'wait_timeout';

or

mysql> show session variables like 'wait_timeout';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| wait_timeout | 10 |

+---------------+-------+

另外,如果要将一个全局系统变量设置为MySQL编译时的默认值,或者将一个session系统变量设置为当前的全局值,可以将该变量的值设置为DEFAULT。例如:

SET @@session.max_join_size = DEFAULT;

SET @@session.max_join_size = @@global.max_join_size;

[参看]:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264460.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python模块之smtplib: 用python发送SSL/TLS安全邮件

转载请注明原文出自 http://blog.csdn.net/zhaoweikid/ python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。smtp协议的基本命令包括: HELO 向服务器标识用户身份 MAIL 初始化邮件传输 mail from: RCPT 标识单个的邮件…

B-树

6.7 B-树★4◎3 1.B-树的定义  B-树是一种平衡的多路查找树,它在文件系统中很有用。  定义:一棵m阶的B-树,或者为空树,或为满足下列特性的m叉树:  (1)树中每个结点至多有m棵子…

dom4j和jaxp解析工具的

dom4j解析中的几个对象node --branch --document --element --commment --attribute --text branch --document --element jaxp解析中的几个对象 node --document --element --commment --attr --text dom4j解析 中全部对象都是node对象的子节点,也就是说它把说有…

mysql数据库交叉连接,MySQL数据库联合查询与连接查询

联合查询基本概念联合查询是可合并多个相似的选择查询的结果集。等同于将一个表追加到另一个表,从而实现将两个表的查询组合在一起,使用为此为UNINO或UNION ALL联合查询:将多个查询的结果合并到一起(纵向合并):字段数不变&#xf…

C#-委托和事件

要为类构造一个事件,必须用 event 来声明一个 delegate 型的字段,如: puclic calss Test{ public delegate EventHandler(object sender, EventArgs e); //声明为delegate 型的事件; } 然后要指定一个事件的名称,并写出处…

性能测试四十五:性能测试策略

1、项目具体需求,及业务场景:关注真实用户会是怎样的一个业务场景,确定用户的用户习惯。 2、指标:响应时间在多少以内,并发数多少,tps多少,总tps多少,稳定性交易总量多少,事务成功率…

原创:MD5 32位加密软件

网站后台数据库切勿使用明文保存密码,否则一旦黑客拿下你的Webshell,后果不堪设想。网站后台密码加密大多数采用的就是MD5算法加密。今天给大家送一个本人用c#简单编写的MD5 32位加密程序,虽然没有什么技术含量,但保证没有后门。 …

(教学思路 c#之类一)声明类和对象、定义类成员及其引用

上一节(教学思路 c#之面向对象二)初步理解面向对象的基本概念中,我没有提到任何的代码,只是用语言和实例来说明什么是类和对象以及面向对象的特性等基本概念,类是c#程序语言的重要核心,也是构建应用程序最主…

matlab数值过小为0,MATLAB数值计算——0

MATLAB数值计算MATLAB中文论坛基础板块常见问题归纳(出处: MATLAB中文论坛)登录http:www.mathworks.com/moler 获取NCM文件,注册账户,下载Toolbox格式,点击安装——在MATLAB中输入ncmgui出现图案即为success!(pathtool添加默认路径…

【springboot】之自动配置原理

使用springboot开发web应用是很方便,只需要引入相对应的GAV就可以使用对应的功能,springboot默认会帮我们配置好一些常用配置。那么springboot是怎么做到的呢?这篇文章将一步步跟踪源码,查看springboot到底是如何帮我们做自动化配置。 sprin…

阴雨连绵潮湿加剧 车辆防潮提升保值

近日来,申城阴雨绵绵,不但增加了行车的难度,也使爱车潮气严重,开上一会就会发现前车窗布满水汽,需要开空调吹干才能保证良好视野。此外潮气也容易对人体和车辆本身造成影响,首当其冲的是车内电器&#xff0…

php nsdata,iOS开发之数据存储之NSData

1、概述使用archiveRootObject:toFile:方法可以将一个对象直接写入到一个文件中,但有时候可能想将多个对象写入到同一个文件中,那么就要使用NSData来进行归档对象。NSData可以为一些数据提供临时存储空间,以便随后写入文件,或者存…

php:兄弟连之面向对象版图形计算器1

曾经看细说PHP的时候就想做这个&#xff0c;可是一直没什么时间&#xff0c;这次总算忙里偷闲搞了代码量比較多的project。 首先&#xff0c;文档结构&#xff0c;都在一个文件夹下就好了&#xff0c;我的就例如以下。 一開始&#xff0c;进入index.php文件。 <html><…

asp.net控件开发基础(19)

上两篇讨论了基本数据绑定控件的实现步骤&#xff0c;基本上我们按着步骤来就可以做出简单的数据绑定控件了。过年前在看DataGrid的实现&#xff0c;本来想写这个的&#xff0c;但2.0出了GridView了&#xff0c;再说表格控件实现比较复杂&#xff0c;所以先放着。我们一起打开M…

Mapreduce的序列化和流量统计程序开发

一、Hadoop数据序列化的数据类型 Java数据类型 > Hadoop数据类型 int         IntWritable float        FloatWritable long        LongWritable double       DoubleWritable String       Text boolean      BooleanWr…

matlab标准化出现负值,为什么我求出来的约束条件是负值

本帖最后由 renwoxinfen 于 2016-11-8 09:01 编辑程序如下&#xff1a;a.m% 设计变量(螺杆平均直径D和长度L)的初始值x0[30;5000];% 设计变量(螺杆平均直径D长度L)的下界与上界Lb[30;5000];Ub[200;6000];% 调用多维约束优化函数% 线性不等式约束放入约束函数文件&#xff0c;参…

1048 Find Coins

水题&#xff0c;详见代码&#xff5e; #include <iostream> #include <string.h> #include <cstdio> #include <algorithm> #include <cstdlib> #include <math.h> #include <queue> #include <stack> #include <vector&g…

P2P之UDP穿透NAT的原理与实现(转)

论坛上经常有对P2P原理的讨论&#xff0c;但是讨论归讨论&#xff0c;很少有实质的东西产生&#xff08;源代码&#xff09;。呵呵&#xff0c;在这里我就用自己实现的一个源代码来说明UDP穿越NAT的原理。 首先先介绍一些基本概念&#xff1a; NAT(Network Address Transla…

基于MATLAB的turbo码代码,一种基于Simulink的Turbo码仿真实现

一种基于Simulink的Turbo码仿真实现Implementation of Turbo Code Simulation Based on SimulinkDOI: 10.12677/HJWC.2014.43010,PDF, ,下载:2,684 浏览:6,349作者:王 丁&#xff1a;杭州电子科技大学&#xff0c;杭州摘要:介绍了Turbo码的编解码原理&#xff0c;并且提出了一…

数组各元素出现的次数

var str "abcabcaaaaa";var map {};  for(var i 0;i<str.length;i){    var s str[i];    var r map[s];    if(r){      map[s] 1;      }else{        map[s] 1;      }    }console.log(JSON.stringify(map)…