mysql error1205 博客_mysql error:1205 - Lock wait timeout exceeded
程序报错:
1205 - Lock wait timeout exceeded; try restarting transaction
以下是相关信息:
一、
http://topic.csdn.net/u/20090304/11/9262d730-5a03-460f-a896-ae29e2a25334.html
a)
在管理节点的[ndbd default]
区加:
TransactionDeadLockDetectionTimeOut=10000(10秒)默认是1200(1.2秒)
b)
按照顺序重新启动各个节点就不会出现问题了。
1. 减小你的事务
2. 用LS的办法,加大事务DEADLOCK的时间。
c)
我也遇到这种问题了,不过我发现是另一个问题导致这种情况的出现。
两个实体表之间的联系表使用了外键,而这个外键在建表的时候没建好。我是用pd直接生成的表,因为用得不太熟,所以外键没建好。就会出现这种情况。
如果你是遇到这种情况的话,可以先将联系表和实体表的外键检查(删除后重新建立)一下,确认正确之后,再看看会不会出现这种问题。
二、
http://bugs.mysql.com/bug.php?id=10641
三、http://www.phpx.com/happy/thr91093.html
四、
http://bugs.mysql.com/bug.php?id=10641
五、
http://gladness.itpub.net/post/6254/62883
MySQL INNODB锁机制简单试验
数据库 — 作者 gladness @ 21:01
使用mysql连接mysql数据库,建两个会话(连接)。每个会话中都分别
set autocommit=0;
关闭自动提交。使用INNODB表做一下试验。
会话一:
mysql> desc test;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| a | int(11) | NO | PRI | | |
| b | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> set autocommit=0;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into test values(1,'abcde');
Query OK, 1 row affected (0.00 sec)
会话二:
mysql> set autocommit=0;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from test;
Empty set (0.00 sec)
mysql> delete from test where a=1;
这里被锁住了(会话一中commit;或者rollback;,会话二才会有响应)
过了一会儿,报错:
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
上述情况下,ORACLE中不会被锁住。
下面是更加需要注意的:
会话一:
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from test;
+---+-------+
| a | b |
+---+-------+
| 1 | abcde |
+---+-------+
1 row in set (0.00 sec)
mysql> insert into test values(1,'abcde');
ERROR 1062 (23000): Duplicate entry '1' for key 1
会话二:
mysql> delete from test where a=1;
还是被锁住,过一会儿,则
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
我在两个会话中执行了SET TRANSACTION ISOLATION LEVEL READ COMMITTED ;
结果仍然相同。
再做新的试验:
会话一:
mysql> create table testfk(a int, constraint fk_testfk foreign key(a) references test(a)) engine=innodb;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into testfk values(1);
Query OK, 1 row affected (0.00 sec)
mysql> select * from test;
+---+-------+
| a | b |
+---+-------+
| 1 | abcde |
+---+-------+
1 row in set (0.00 sec)
mysql> select * from testfk;
+------+
| a |
+------+
| 1 |
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
