MySQL 1213: Deadlock found when trying to get lock.

  1. Identify the Queries Involved in the Deadlock:


- Run `SHOW ENGINE INNODB STATUS;` to get the latest information about InnoDB engine status, which includes the last deadlock.
- Look for the section LATEST DETECTED DEADLOCK. This section shows information about the transactions involved in the last deadlock, including the SQL statements.

  1. Review the Transaction Isolation Level:


- Execute `SELECT @@GLOBAL.txisolation, @@txisolation;` to check the current transaction isolation levels. Sometimes adjusting the isolation level can reduce the likelihood of deadlocks.

  1. Analyze Lock Waits:


- Use `SHOW OPEN TABLES WHERE In_use > 0;` to find tables that are currently locked.
- Run `SHOW PROCESSLIST;` to see which threads are running and possibly involved in lock contention.

  1. Kill Blocking Queries if Necessary:


- If you identify a query that is causing a deadlock and it is safe to terminate, use `KILL [thread id];` where `[thread id]` is the ID of the process you want to stop.

  1. Retry the Operation:


- After investigating, retry your operation. Deadlocks are transient errors, and retrying the operation is a common approach.

Master

MySQL

in Minutes — Grab the Ultimate Cheatsheet

(Perfect for DevOps & SREs)

Most-used commands
Real-world configs/examples
Handy troubleshooting shortcuts
Your email is safe with us. No spam, ever.

Thankyou for your submission

We have sent the cheatsheet on your email!
Oops! Something went wrong while submitting the form.

MySQL

Cheatsheet

(Perfect for DevOps & SREs)

Most-used commands
Your email is safe with us. No spam, ever.

Thankyou for your submission

We have sent the cheatsheet on your email!
Oops! Something went wrong while submitting the form.

MORE ISSUES

Made with ❤️ in Bangalore & San Francisco 🏢

Doctor Droid