What causes waiting for table metadata lock?

What does metadata lock wait mean? When there is an active transaction (explicit or implicit) on the table, MySQL does not allow writing of data to metadata. It does this to maintain metadata consistency in the table in a concurrent environment.

What is waiting for metadata lock?

1398 is the connection waiting for the lock. This means it does not yet have the lock, and therefore, killing it avails nothing. The process holding the lock will still hold the lock, and the next thread trying to do something will therefore also stall and enter “Waiting for metadata lock” in due order.

What is table metadata lock?

Metadata Lock Release A metadata lock on a table prevents changes to the table’s structure. This locking approach has the implication that a table that is being used by a transaction within one session cannot be used in DDL statements by other sessions until the transaction ends.

What is waiting for table flush?

If a query is running that accesses that table at the time the the FLUSH TABLE is issued, the FLUSH TABLE will be blocked until the query completes. While the FLUSH TABLE is blocked, no new queries accessing the affected tables can start running and their state in the process list will show “Waiting for table flush“.

How does InnoDB check engine status?

SHOW ENGINE INNODB STATUS is a specific form of the SHOW ENGINE statement that displays the InnoDB Monitor output, which is extensive InnoDB information which can be useful in diagnosing problems.

How do I flush a table in MySQL?

To flush and lock tables, use FLUSH TABLES tbl_name WITH READ LOCK instead. With a list of one or more comma-separated table names, this operation is like FLUSH TABLES with no names except that the server flushes only the named tables. If a named table does not exist, no error occurs.

How do I fix Lock wait timeout exceeded try restarting transaction in Mariadb?


  1. Make sure the database tables are using InnoDB storage engine and READ-COMMITTED transaction isolation level.
  2. If the the above configuration is correct then please try to increase the database server innodb_lock_wait_timeout variable to 500.

What does flush tables with read lock do?

FLUSH TABLES WITH READ LOCK is useful if you want to take a backup of some tables. When FLUSH TABLES WITH READ LOCK returns, all write access to tables are blocked and all tables are marked as ‘properly closed’ on disk. The tables can still be used for read operations.

What is table flush?

The idea of FLUSH TABLES is to force all tables to be closed. This is mainly to ensure that if someone adds a new table outside of MySQL (for example, by copying files into a database directory with cp ), all threads will start using the new table.

What causes MySQL deadlock?

A deadlock in MySQL happens when two or more transactions mutually hold and request for locks, creating a cycle of dependencies. InnoDB automatically detects transaction deadlocks, rollbacks a transaction immediately and returns an error. It uses a metric to pick the easiest transaction to rollback.

What is MySQL InnoDB?

InnoDB is a storage engine for the database management system MySQL and MariaDB. Since the release of MySQL 5.5. 5 in 2010, it replaced MyISAM as MySQL’s default table type. It provides the standard ACID-compliant transaction features, along with foreign key support (Declarative Referential Integrity).

Is flush hosts safe?

No harm. No connection termination. The cache is used only when clients are trying to connect; apparently something is out-of-date in the cache.