mysql事务隔离级别

阅读更多
注:原创作品,转载请注明出处。

一设置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


你可能感兴趣的:(mysql)