Mysql错误:ERROR 1205 (HY000): Lock wait timeout exceeded解决办法

临时解决办法

执行mysql命令:show full processlist;

然后找出插入语句的系统id

执行mysql命令:kill id

在网络上找了想相关资料,这里摘录如下:

首先,查看数据库的进程信息:

show full processlist;

/*结果略,主要看id列的值*/

再查看事物表:

SELECT * FROM information_schema.INNODB_TRX\G;
/*结果略,注意结果中的trx_mysql_thread_id部分的值*/

查找对应的id,然后kill id的值即可;

mysql默认是自动提交的,可以用以下命令查看:

 select @@autocommit;
值为1就是自动提交,如果你的不是1,但你又想要自动提交,那么设置的命令是:

set global autocommit=1;
 

表数据量也不大,按照普通的情况来说,简单的update应该不会造成阻塞的,mysql都是autocommit,不会出现update卡住的情况,去查看下autocommit的值。
mysql> select @@autocommit;
+--------------+
| @@autocommit |
+--------------+
| 0 |
+--------------+
1 row in set (0.00 sec)

mysql>

看到亮闪闪的0,这个设置导致原来的update语句如果没有commit的话,你再重新执行update语句,就会等待锁定,当等待时间过长的时候,就会报ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction的错误。
所以赶紧commit刚才执行的update语句,之后 set global autocommit=1;

时间: 2024-10-24 07:48:13

Mysql错误:ERROR 1205 (HY000): Lock wait timeout exceeded解决办法的相关文章

mysql提示 Lock wait timeout exceeded解决办法

利用 SHOW PROCESSLIST来查看问题 原因:原因是你使用的InnoDB   表类型的时候, 默认参数:innodb_lock_wait_timeout设置锁等待的时间是50s, 因为有的锁等待超过了这个时间,所以抱错. 你可以把这个时间加长,或者优化存储过程,事务避免过长时间的等待. 解决的办法有两个: 第一:innodb_lock_wait_timeout 锁定等待时间改大 my.ini文件:  代码如下 复制代码 #innodb_lock_wait_timeout = 50 修改

MySQL错误ERROR 2002 (HY000): Can't connect to local MySQL server through socket_Mysql

在安装好了MySQL之后,使用了新的配置文件后,MySQL服务器可以成功启动,但在登陆的时候出现了ERROR 2002 (HY000): Can't connect to local MySQL server through socket,即无法通过socket连接到mysql服务器,同时提供了socket文件的位置.下面是这个问题的描述与解决办法. 1.故障现象 复制代码 代码如下: [root@SZDB mysqldata]# mysql -uroot -p123456 Warning: U

mysql 出现Error: Duplicate entry “xxxx” for key 1解决办法

所出错形式如下: Discuz! info: MySQL Query Error User: 爱我荆门 Time: 2007-3-5 11:00am Script: /bbs/post.php SQL: INSERT INTO cd12sb_threads (fid, readperm, price, iconid, typeid, author, authorid, subject, dateline, lastpost, lastposter, displayorder, digest, b

mysql出现ERROR 1819 (HY000)的解决方法_Mysql

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,出现这个问题怎么办?不用着急,下面给出答案. 为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log. 一般可通过log_error设置 mysql> select @@log_error; +---

【MySQL】ERROR 1005 (HY000): Can't create table' (errno: 150)

创建含有外键的表的时候遇到如下错误  ERROR 1005 (HY000): Can't create table 'eidsvr.oplog' (errno: 150) test@3302 12:02:22>CREATE TABLE biz(     -> id INTEGER NOT NULL AUTO_INCREMENT,      -> buid VARCHAR(255),      -> appkey VARCHAR(255),      -> createtime

ERROR 1201 (HY000): Could not initialize master解决方法

在做mysql5.5主从复制,当在从服务器上的执行CHANGE MASTER时,报下面这个错误: ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log. 下面是解决方法: 1.先停止slave stop slave; 2.进入数据库存储目录 我的mysql存储目录是/var/lib/mysql cd /var/l

Error initializing USB support: Other errors[-99]解决办法

最近一段时间在忙着练习红帽新版(rhel7)从rhce到rhca的8门课程的练习题目,所以最近一直在用kvm虚拟机做练习,不同于以往的全命令行界面操作,个别会涉及到图形下的问题,在通过virt-manager连接kvm虚拟机查看时,发现有如下报错:Error connecting to graphical console: Error initializing USB support: Other errors[-99] .     由于用不到usb设备,首先尝试通过该管理工具remove US

MySQL中ERROR 1665 (HY000)案例

1.1.1. ERROR 1665 (HY000) [环境描述] msyql5.6.14 [报错信息] 执行SQL语句的时候报错: ERROR 1665 (HY000): Cannot executestatement: impossible to write to binary log since BINLOG_FORMAT = STATEMENTand at least one table uses a storage engine limited to row-based logging.

MySQL中ERROR 1786 (HY000)案例

1.1.1. ERROR 1786 (HY000) [环境描述] msyql5.6.14 [报错信息] 执行create table ... select的时候遇到报错: db1 [test] [23:01:58]> create tablelgmnr_bak select * from lgmnr; ERROR 1786 (HY000): CREATE TABLE ... SELECTis forbidden when @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1