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事務,請參加一哥們的博文。 真是酣暢淋漓。佩服。
[url]http://xm-king.iteye.com/blog/770721[/url]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章