服务器为每个连接的客户端执行的字符串。字符串由一个或多个SQL语句组成。要想指定多个语句,用分号间隔开。例如,每个客户端开始时默认启用autocommit模式。没有全局服务器变量可以规定autocommit默认情况下应禁用,但可以用init_connect来获得相同的效果:

SET GLOBAL init_connect='SET AUTOCOMMIT=0';

还可以在命令行或选项文件中设置该变量。要想使用选项文件设置变量,应包括下述行:

[mysqld]
init_connect='SET AUTOCOMMIT=0'

请注意init_connect的内容并不为拥有SUPER权限的用户执行;实际是内容设置错误(包含错误查询,例如语法错误),这样使所有连接失败。不为SUPER用户执行,使SUPER用户可以打开连接并固定init_connect。


mysql 默认是autocommit=1 的,

我们线上都设置一般是init_connect='set autocommit=0; set names gbk;' 这样的。

init_connect 是可以动态在线调整的,这样就有了一些其他的用处。 
经过测试init_connect 是用户登录到数据库上之后,在执行第一次查询之前执行 里面的内容的。 
如果init_connect  的内容有语法错误,导致执行失败,会导致用户无法执行查询,从mysql 退出。

init_connect 对具有super  权限的用户是无效的。

我们可以用init_connect 来登记用户的信息,例如一个测试如下: 
创建测试表:
mysql.sock@test> create  table t1 ( cur_user varchar(100), n_user varchar(100),in_time timestamp  default current_timestamp()) ;
Query OK, 0 rows affected (0.09 sec)

设定 init_connect : 
mysql.sock@(none)>  set global init_connect='insert into test.t1 (cur_user,n_user) values (current_user(),user())';                 
Query OK, 0 rows affected (0.00 sec)

普通用户登录: 
[root@test740_9 ~]# mysql -u lsl -plsl test
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1101066
Server version: 5.1.41-log MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

查询用户信息:
mysql.sock@test> select * from t1; 
+----------+---------------+---------------------+
| cur_user | n_user        | in_time             |
+----------+---------------+---------------------+
| lsl@%    | lsl@localhost | 2011-03-29 10:50:58 |
+----------+---------------+---------------------+
1 row in set (0.00 sec)

记录了用户的客户端信息,当然还可以记录更多的信息,例如database() 记录当前数据库等等。

本次测试是直接将记录日志表,建在测试用户下,

注意: 对于所有的普通级别的用户,必须全部都要对日志表具有读写权限, 否则将导致,没有权限的用户无法使用数据库。

参考:

http://www.cnblogs.com/cnsanshao/p/3253025.html

http://blog.itpub.net/133735/viewspace-691196/

init_connect基本用法的更多相关文章

  1. EditText 基本用法

    title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...

  2. jquery插件的用法之cookie 插件

    一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...

  3. Java中的Socket的用法

                                   Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...

  4. [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法

    一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...

  5. python enumerate 用法

    A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , whe ...

  6. [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

    本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...

  7. 【JavaScript】innerHTML、innerText和outerHTML的用法区别

    用法: <div id="test">   <span style="color:red">test1</span> tes ...

  8. chattr用法

    [root@localhost tmp]# umask 0022 一.chattr用法 1.创建空文件attrtest,然后删除,提示无法删除,因为有隐藏文件 [root@localhost tmp] ...

  9. 萌新笔记——vim命令“=”、“d”、“y”的用法(结合光标移动命令,一些场合会非常方便)

    vim有许多命令,网上搜有一堆贴子.文章列举出各种功能的命令. 对于"="."d"."y",我在无意中发现了它们所具有的相同的一些用法,先举 ...

随机推荐

  1. consul 使用方式

    1.在配置文件配置好的情况下,在运行 consul agent -server -datacenter=([xacl.json].[acl_datacenter]) -bootstrap -data- ...

  2. 初步学习pg_control文件之五

    接前文 初步学习pg_control文件之四,继续看何时出现  DB_IN_CRASH_RECOVERY: 看下面代码就比较清楚了:如果对 InArchiveRecovery 判断值为假,而且 读取出 ...

  3. Windows Server Backup 裸机恢复

    1.打开“Windows Server Backup”选择本地备份,并在操作栏选择“一次性备份”:(在实际生产环境中可以根据自己的需求,选择一次性备份还是选择备份计划.) 2.打开“一次性备份向导”, ...

  4. Python连接符的种类和使用区别

    python的连接符主要有 加号(+).逗号(,).空格(   ) .反斜线(\).join()的方式. 加号(+),demo如下: #注意,+只能连接字符串,如果一个是字符串一个是数字就会报错 pr ...

  5. 【赛后补题】(HDU6223) Infinite Fraction Path {2017-ACM/ICPC Shenyang Onsite}

    场上第二条卡我队的题目. 题意与分析 按照题意能够生成一个有环的n个点图(每个点有个位数的权值).图上路过n个点显然能够生成一个n位数的序列.求一个最大序列. 这条题目显然是搜索,但是我队在场上(我负 ...

  6. python,批量生成指定格式的审核数据(传输参数格式为数组时)

    #思路#获取list长度(例如列表有20条数据,则生成20条数据),生成数组长度为list元素的数据,完成对列表20条数据的批量审核def createBatchData(self,str_in,li ...

  7. Python升级3.6 强力Django+Xadmin打造在线教育平台

    第 1 章 课程介绍 1-1 项目演示和课程介绍: 第 2 章 Windows下搭建开发环境 2-1 Pycharm.Navicat和Python解释器的安装: Pycharmhttp://www.j ...

  8. [USACO18DEC]Cowpatibility(容斥 or bitset优化暴力)

    题面 题意: 给出n个五元组(一个五元组的五个数互不相同),我们称两个五元组不和谐,当且仅当任意元素都不相同,求有多少对五元组不和谐. \(Solution:\) 很容易想到 Ans = 总共对数-和 ...

  9. Visual Studio 2012安装包

    点击下载

  10. C++的几种字符类型

    我们在C学过了char字符类型. 在C++中,char是基本的字符类型,但却不仅仅有这一种字符类型! 类型 含义 该类型数据所占的最小比特位数 char 字符 8位(即可表示28个字符) wchar_ ...