27、myslq更改为不自动提交


27.1、说明:

默认情况下, MySQL启用自动提交模式(变量autocommit为ON)。这意味着, 只要你执行DML操作的语句,

MySQL会立即隐式提交事务(Implicit Commit)。这个跟SQL Server基本是类似的,与oralce是相反的。


27.2、查看autocommit模式:

1、说明:

由于变量autocommit分会话(session)系统变量与全局(global)系统变量,所以查询的时候,最好区别是会话

系统变量还是全局系统变量。

session:当前会话有效,也就是当前连接。

global:全局,不包含当前连接,之后新获取的连接都会生效,重启mysql服务失效。


2、查看会话系统变量:

show session variables like 'autocommit';


(2)查看全局系统变量:

show global variables like 'autocommit';


(3)补充:

Value的值为ON表示autocommit开启,OFF表示autocommit关闭。


27.3、设置当前会话客户端生效:

1、设置会话系统变量:

set session autocommit=0;


2、查看会话系统变量:

show session variables like 'autocommit';


27.4、设置全局会话客户端有效,重启mysql服务失效:

1、设置全局系统变量:

set global autocommit=0;


2、重新打开一个session连接,查看全局系统变量:

show global variables like 'autocommit';


27.5、配置my.cnf文件,永久生效:

1、编辑my.cnf文件:

[mysqld]

autocommit=0


2、重启mysql服务。


27.5、补充:

还有种配置方式,如下所示,这种方式从MySQL 5.6开始已经不生效了,必须用'autocommit=0'这种方式替换。

1、my.cnf配置文件配置:

[mysqld]

init_connect="SET autocommit=0"


2、全局系统变量配置:

mysql> select version();

mysql> set global init_connect='SET autocommit=0';

/*只能使用global,因为init_connect是全局系统变量

*/

mysql> show global variables like 'init_connect';


27.6、注意:

在不同的连接(session)下,使用'commit;'是相互不影响的。







posted @   云起时。  阅读(300)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示
主题色彩