mysql数据库永久设置手动提交事务(InnoDB存储引擎禁止autocommit默认开启)

mysql数据库InnoDB存储引擎(默认情况下是自动控制提交事务)与其他关系型数据库在默认事务处理与其他关系型数据库略有不同,之前已经习惯Oracle数据库的手动提交事务的处理方式,mysql数据库只有innoDB存储引擎支持事务处理操作。
     现在设置mysql数据库也是手动提交事务。方法有两种:①临时生效(只对当前客户端有效),②永久生效
①临时生效(只对当前客户端有效)
set @@autocommit=0 (0为关闭状态,1为开启状态) 
如下图命令行所示:此方式只对本次客户端有效,关闭后自动恢复自动提交事务状态。

通过第三方客户端也可以同时达到此效果:

 

②永久生效(通过修改配置文件参数设置)
一、在Linux系统中:
    通过修改配置文件my.cnf文件,通过vim编辑my.cnf文件,在[mysqld](服务器选项下)添加:
    
autocommit=0
    保存,然后重启mysql服务即可生效。
二、在Windows系统中:但是在my.ini文件添加autocommit=0,重启mysql生效参数过程,数据库不能正常启动服务;
如下图所示:命令行启动提示:错误文件中提示:no variables autocommit=0(MySQL
 server 5.1版本,但是安装了MySQL server 5.6版本后直接使用autocommit=0即可使用,猜测可能是MySQL高版本(MySQL
 server5.5版本完美使用了原生的innoDB存储引擎)对Windows系统支持了此参数)

Windows系统中(MySQL
 server5.1版本)设置该参数生效方法:
需要借助init_connect参数:服务器为每个连接的客户端执行的字符串。字符串由一个或多个SQL语句组成。要想指定多个语句,用分号间隔开.
通过修改配置文件my.ini文件,编辑my.ini文件,在[mysqld](服务器选项下)添加:
 init_connect='SET AUTOCOMMIT=0'
 保存,然后重启mysql服务即可生效。
或者使用下列方法也可以达到:
1、命令行下:
mysql>SET GLOBAL init_connect='SET autocommit=0';
2、启动mysqld时带上--init_connect='SET autocommit=0'Windows系统中(MySQL server5.1版本)当我们以Super权限(root)登录mysql数据库服务时,show
 variables like '%autocommit%'查得结果还是:autocommit  ON,这是因init_connect(手册中有对其解释)以Super用户登录是不被加载的,这是mysql出于安全考虑,而后用普通用户登录,show variables like '%autocommit%' 显示的结果如下:
autocommit OFF
--------------------- 

来源:CSDN 
原文:https://blog.csdn.net/xiaoyi23000/article/details/51690601 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值