Mysql
 sql >> Base de données >  >> RDS >> Mysql

La suppression de la table fait planter MySQL

Waiting for table metadata lock
drop table tableA name

SELECT l1.lat, l1.lon, l2.zipcode FROM tableA l1, tableBl2 where l1.lat = l2.latitude and l1.lon = l2.longitude limit 10

S'il s'agit de votre table, consultez ce lien

vous avez un blocage implicite. Tuez les autres transactions pour libérer le drop, ou tuez le drop pour libérer les autres transactions.

Vous pouvez utiliser KILL thread_id, dans sql_plus.

J'ajoute des informations supplémentaires car j'ai trouvé une autre expérience intéressante.

Metadata Des dead locks peuvent également se produire entre une opération ddl sur une table donnée (drop , alter ...) et un sélectionner requête sur cette table.

Oui, select .

Donc, si vous bouclez sur un curseur dans mysql (ou php, par exemple avec pdo::fetch ), et que vous exécutez une instruction ddl sur la ou les mêmes tables, vous obtiendrez un blocage.

Une solution à ce scénario atypique consiste à libérer les verrous implicites avec un commit instruction systématiquement après la récupération complète de toute instruction select.