MySQL的autocommit(自动提交)默认是开启,其对mysql的性能有一定影响,举个例子来说,如果你插入了1000条数据,mysql会commit1000次的,如果我们把autocommit关闭掉,通过程序来控制,只要一次commit就可以了。

1,我们可以通过set来设置autocommit

  1. mysql> set global init_connect="set autocommit=0";  //提示你用权限更高的财户来设置
  2. ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER privilege(s) for this operation
  3. mysql> set autocommit=0;
  4. Query OK, 0 rows affected (0.00 sec)
  5. mysql> select @@autocommit;   //查看一下autocommit的设置
  6. +--------------+
  7. | @@autocommit |
  8. +--------------+
  9. |            0 |
  10. +--------------+
  11. 1 row in set (0.00 sec)

2,我们可以修改mysql的配置文件my.cnf来关闭autocommit

  1. [mysqld]
  2. init_connect='SET autocommit=0'  //在mysqld里面加上这些内容

用第二种方法关,有一点要注意,连接mysql用户的权限不能大于启动mysql的用户的权限,不然init_connect='SET autocommit=0'根本不会启作用,也不会报任何错误,汗一个先。看以下实例

  1. zhangy@ubuntu:~$ mysql -umysql
  2. Welcome to the MySQL monitor.  Commands end with ; or \g.
  3. Your MySQL connection id is 1
  4. Server version: 5.5.2-m2-log Source distribution
  5. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  6. mysql> select @@autocommit;     //mysql是启动用户,关闭autocommit成功
  7. +--------------+
  8. | @@autocommit |
  9. +--------------+
  10. |            0 |
  11. +--------------+
  12. 1 row in set (0.00 sec)
  13. mysql> Ctrl-C -- exit!
  14. Aborted
  15. zhangy@ubuntu:~$ mysql -uroot
  16. Welcome to the MySQL monitor.  Commands end with ; or \g.
  17. Your MySQL connection id is 2
  18. Server version: 5.5.2-m2-log Source distribution
  19. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  20. mysql> select @@autocommit;    //用root财户启动,不成功。
  21. +--------------+
  22. | @@autocommit |
  23. +--------------+
  24. |            1 |
  25. +--------------+
  26. 1 row in set (0.00 sec)

这个会不会是mysql的bug呢?我在网上找了找这方面的问题,还真有。部分内容如下:
If a user has SUPER privilege, init_connect will not execute
(otherwise if init_connect will a wrong query no one can connect to server).

Note, if init_connect is a wrong query, the connection is closing without any errors
and next command will clause 'lost connection' error.

里面有一点说的很清楚If a user has SUPER privilege, init_connect will not execute,如果用户有更高级的权限,init_connect根本不会执行。

http://blog.csdn.net/ying_593254979/article/details/12095169

mysql禁用autocommit,以及遇到的问题(转)的更多相关文章

  1. mysql禁用autocommit,以及遇到的问题

    原文地址:http://blog.51yip.com/mysql/1230.html http://blog.csdn.net/ying_593254979/article/details/12095 ...

  2. 关于mysql 的 autoCommit 参数

    首先描述一下这个参数的作用. 这个参数 默认是开启的. 开启以后再命令敲的sql 会自动提交.如果关闭,就必须手动 commit. 查看 这个 自动提交状态. SELECT @@autocommit; ...

  3. Mysql中autocommit的用法

    定义 Mysql文档原文:SET autocommit disables or enables the default autocommit mode for the current session. ...

  4. MySQL 的 autocommit

    在自动提交模式(autocommit=ON)下提交事务: •在自动提交模式下,每个SQL语句都是一个独立的事务. –mysql>insert into ACCOUNTS values(1,'To ...

  5. 【mysql】autocommit=0后,commit, rollback无效

    之前在[mysql]MySQLdb中的事务处理中用autocommit和commit()以及rollback()实现了事务处理. 但后来,用同样的代码在另一个数据库中运行却失败了.找了一个下午的原因. ...

  6. 从知乎了解到,为什么Mysql禁用存储过程、外键和级联?

    打开帖子直接一张醒目的图,是阿里巴巴的Java开发手册对Mysql相关的要求. 看看下面的回复 灵剑 存储过程没有版本控制,版本迭代的时候要更新很麻烦.存储过程如果和外部程序结合起来用,更新的时候很难 ...

  7. mysql事务,SET AUTOCOMMIT,START TRANSACTION

    http://yulei568.blog.163.com/blog/static/135886720071012444422/ MyISAM不支持 START TRANSACTION | BEGIN ...

  8. mysql事务,START TRANSACTION, COMMIT和ROLLBACK,SET AUTOCOMMIT语法

    http://yulei568.blog.163.com/blog/static/135886720071012444422/ MyISAM不支持 START TRANSACTION | BEGIN ...

  9. mysql java.sql.SQLException: Can't call commit when autocommit=true

    java.sql.SQLException: Can't call commit when autocommit=true at com.mysql.jdbc.SQLError.createSQLEx ...

随机推荐

  1. Java多线程之synchronized(二)

    为了解决“非线程安全”带来的问题,上一节中使用的办法是用关键字synchronized修饰多个线程可能同时访问到的方法,但是这样写是存在一定的弊端的,比如线程A调用一个用synchronized修饰的 ...

  2. js 精美倒计时

    精美倒计时*{ padding:0; margin:0;}.colockbox{width:250px;height:30px;background:url(/jscss/demoimg/201312 ...

  3. C语言之自守数

    自守数 自守数是指一个数的平方的尾数等于该数自身的自然数,如25*25=625,76*76=5776.要求求出一定范围内的所有自守数. 题目分析: 刚拿到这个题目的时候认为解题关键在于,测试该数平方数 ...

  4. 解读Google分布式锁服务

    解读Google分布式锁服务  背景介绍 在2010年4月,Google的网页索引更新实现了实时更新,在今年的OSDI大会上,Google首次公布了有关这一技术的论文. 在此之前,Google的索引更 ...

  5. MFC技术内幕系列之(四)---MFC消息映射与消息传递内幕

    ////////////////////////////////////////////////////////////////////////////////////                 ...

  6. [置顶] PHP开发实战权威指南-读书总结

    从今年开始,断断续续学习PHP已经有4个月了. 最初,认真学习PHP几天,就弄WordPress搭建了一个个人博客,这也符合技术人的实践理念. 最近,重温PHP开发实战权威指南,做点总结,整理下自己学 ...

  7. ceph操作相关命令整合

    ceph基本操作: /etc/init.d/ceph -a start/stop //即在所有节点上执行 单个操作: start/stop ceph-osd id={id} start/stop ce ...

  8. IIS7.0+SqlServer2012,进行.net网站发布的安装全过程

    1..net3.5安装(sqlserver2012需要) 控制面板-->管理工具-->服务器管理器-->功能-->添加功能-->选择".NET Framewor ...

  9. ISO C Random Number Functions

    This section describes the random number functions that are part of the ISO C standard. To use these ...

  10. 432B - Football Kit

    解题思路: 暴力绝对TLE 一个队伍穿主场球衣的次数 = 这个队伍的客场球衣颜色与其他队主场球衣颜色起冲突的次数 + (n - 1) #include <stdio.h> #include ...