after querying the current thread, it was found that multiple threads were running at the same time…
to view all currently running transactions:
SELECT * FROM information_schema.INNODB_TRX;
you can find three transactions all running at the same time… So you can find the direct cause of the error reported by the shopkeeper here is:
before the stored procedure (which opened the transaction) ran for half a day, MySQL was manually closed without any response… Didn’t make it commit… And the subsequent deletion of data in the same transaction creates a transaction lock…
The fundamental reason is that MySQL USES the Innodb engine by default, and the default parameter of Innodb: innodb_lock_wait_timeout, which sets the maximum time for transactions to wait for acquiring resources (default 50s). Once the maximum time is exceeded, it will report errors such as questions without obtaining resources.
Well, now that the cause of the error has been identified, there are three solutions:
Find the thread of the current transaction, kill the thread; Enlarge this parameter: innodb_lock_wait_TIMEOUT wait time; Optimize stored procedures.
Here the shopkeeper takes the first approach, killing the redundant threads and then checking all the currently running transactions again:
find something strange?The killed thread Number 10 is still working??Its current state is “ROLLING BACK,” which means that the transaction that was killed a while ago has been in a rollback state. So the shopkeeper continued to look up materials and found that such a situation occurred because although the kill command was triggered, it took a long time to terminate the kill logic, and it was also affected by IO resources. Therefore, rollback occurred even though the kill was executed.
One is to wait for it to roll back; Another is to restart the MySQL, but restart MySQL, the transaction will roll back, so in general is actually etc. It can be rolled back end 😂!
waited for about seven or eight minutes before everything was cleared, and all transactions were over:
and then delete again:
- Global lock, table lock and row lock in MySQL
- 【Exception】mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table…
- Centos 7 | mariadb/mysql | [ERROR] InnoDB: Unable to lock ./ibdata1 error: 11
- Lock wait timeout exceeded — transaction and index
- In depth analysis of mysq exceeding the number of connections error 1040 (HY000): too many connections
- DB2 encountered the problem of sqlcode = 911 lock table when updating record update
- Explain MySQL replication error 1032 & 1205
- The difference between sleep() and wait() in Java
-  MySQL error: error 1205: lock wait timeout exceeded solution
- Sorting out MySQL “too many connections” solutions
- How to Cancel pending transactions on Ethereum
- Error: current transaction is aborted, commands ignored until end of transaction blockp
- MySQL error STORAGE ENGINE failed
- InnoDB, tokudb, MyISAM directory structure
- MySQL data import error 1227, acess denied
- Springboot + mybatis plus transaction management
- MySQL error 1030 got error 1 from storage engine
- Spring failed to commit the transaction
- mysql error 1033 Incorrect information in file: ‘xxx.frm’ (Fixed)
- Mysql cannot allocate memory for the buffer pool solution