一设置mysql自动提交关闭
为演示效果,先设置mysql的自动提交关闭。注意mysql服务器默认设置的自动提交时开
启的。修改方法为:可在配置文件my.ini中加入如以下语句:
[mysqld] init_connect='set autocommit=0'
然后重启服务,重启服务后登陆mysql,键入:show variables like 'autocommit'
出现如下结果:
autocommit ON
这说明我我往配置文件中加入的语句没有起到任何的效果。我发现init_connect后以Super用户登陆是不被加载的,这是mysql出于安全原因所考虑的。然后我切换到“普通用户”登陆,键入:show variables like 'autocommit'
出现如下结果:
autocommit OFF
这个问题也就得到解决。如果你没有普通用户,那么就用下面的方法吧:
mysql> set autocommit = 0;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'auto%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
| autocommit | ON |
| automatic_sp_privileges | ON |
+--------------------------+-------+
4 rows in set (0.00 sec)
mysql> set autocommit = 0;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'auto%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
| autocommit | OFF |
| automatic_sp_privileges | ON |
+--------------------------+-------+
4 rows in set (0.00 sec)
1 row in set (0.00 sec)
比较两种方法,第一种是永久的修改,而第二种只是临时会话的。
二:设置全局的mysql服务器事务隔离级别
windows下修改my.ini配置文件,在mysqld下增加如下语句:
#定制mysql的事务隔离级别 #可选参数有:READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, #SERIALIZABLE. transaction-isolation = READ-UNCOMMITTED
在客户端查看是否修改成功:
select @@tx_isolation;
mysql> select @@tx_isolation; +------------------+ | @@tx_isolation | +------------------+ | READ-UNCOMMITTED | +------------------+ 1 row in set (0.00 sec)
可看出已经修改成功。
关于mysql事务,请参加一哥们的博文。 真是酣畅淋漓。佩服。
http://xm-king.iteye.com/blog/770721