关于mysql设置autocommit的疑问
dbdao吧
全部回复
仅看楼主
level 6
碎梦zdr 楼主
系统:ubantu虚拟机 mysql版本:5.7.7-rc
万能的大神 请教一下:
1.怎样使mysql关闭autocommit是系统级别生效而不是session级别的?
使用 set autocommit='OFF' 只能对该session有效 另开一个session 查询该参数还是自动提交的
2.修改my.cnf文件增加 init_connect='SET autocommit=0'也是不能生效
刚刚学习mysql 问题可能很low 请各位大神多多包含!!
2016年05月25日 08点05分 1
level 9
另外可查看文档:
http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_autocommit
可知,在配置文件中如下设置即可:
[mysqld]
autocommit=0
2016年05月26日 03点05分 3
刚刚接触 多谢指教!!
2016年05月26日 04点05分
大神 实在抱歉 误删了评论!!
2016年05月26日 07点05分
首先奇怪为什么你会使用init_connect来进行设置,其次mysql文档中关于设置的sample如下:[图片]请注意,这是放在[mysqld]配置组中的。
2016年05月26日 07点05分
level 6
碎梦zdr 楼主
现在autocommit已经设置成了OFF为何我不进行commit的时候另外session查询还是更新了
session1:
mysql> show variables like '%autocommit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit | OFF |
+---------------+-------+
1 row in set (0.01 sec)
mysql> select * from zdr_myisam_autoincre;
+---+------+
| i | name |
+---+------+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
+---+------+
3 rows in set (0.05 sec)
mysql> update zdr_myisam_autoincre set i=4 where i=3;
Query OK, 1 row affected (0.03 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from zdr_myisam_autoincre;
+---+------+
| i | name |
+---+------+
| 1 | 1 |
| 2 | 2 |
| 4 | 3 |
+---+------+
3 rows in set (0.01 sec)
session2:
mysql> select * from zdr_myisam_autoincre;
+---+------+
| i | name |
+---+------+
| 1 | 1 |
| 2 | 2 |
| 4 | 3 |
+---+------+
3 rows in set (0.00 sec)
mysql> show variables like '%autocommit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit | OFF |
+---------------+-------+
1 row in set (0.01 sec)
2016年05月26日 07点05分 4
level 9
你都使用的是myisam引擎的表了,怎么会用到事务commit呢。
2016年05月26日 08点05分 5
嗯 明白了!看书上说myisam是表锁 innodb是行锁 所以想insert数据试验一下 非常感谢您的解答!!
2016年05月26日 15点05分
1