一个没提交的事务使用了A表, 另外一个session 对A表进行alter,出现waiting for table metadata lock MySQL版本为5.6.12。 在进行alter table操作时,有时会出现Waiting for table metadata lock的等待场景。而且,一旦alter table TableA的操作停滞在Waiting for table metadata lock的状态,后续对TableA的任何操作(包括...
此时,会发生阻塞。 通过show processlist发现,alter table 发生了Waiting for table metadata lock。 image.png 解决办法: 通过执行 select trx_state, trx_started, trx_mysql_thread_id, trx_query from information_schema.innodb_trx image.png kill 154 再次通过show processlist查询 发现alert table已经执行完毕 ...
造成alter table产生Waiting for table metadata lock的原因其实很简单,一般是以下几个简单的场景: 场景一: 通过show processlist可以看到TableA上有正在进行的操作(包括读),此时alter table语句无法获取到metadata 独占锁,会进行等待。 这是最基本的一种情形,这个和mysql 5.6中的online ddl并不冲突。一般alter table的...
此时此刻,我就在Alter Table面前跪了。 My Sql 中 Waiting for table metadata lock,主要发生在你在Alter 一个表时,在这个表上有未完成的查询或者操作,其独占了metalock状态下,alter 操作就会等待这个锁释放,接下来是一段漫长的block之旅 以下是mysql 官方对于Metadata Locking概念的解释: MySQL 5.5.3 and up us...
事务一:select * from rate_table 事务二:alter table rate_table add column x int 比如这样的情况,默认情况下不会发生任何问题,也不应该任何问题。 但是实际的业务场景是 在执行alter table的时候,迟迟不完成,并且show processlist查看线程的时候,发现alter 操作一直处于Waiting for table metadata lock的状态。
2019-12-22 17:11 −解决多线程安全的方式 synchronized 隐式锁 1.同步代码块 2.同步方法 3.lock 同步锁 显式锁 &n... wf.zhang 0 217 kernel: nf_conntrack: table full, dropping packet 2019-12-17 03:05 −今晚系统割接,在修改组件配置重启服务后,主机夯住了,操作系统命令无法执行,主机无法正常...
| 19 | root | localhost | baixyu | Query | 452 | altering table | alter table sbtest1 add primary key(c) | | 21 | root | localhost | performance_schema | Sleep | 12 | | NULL | | 23 | root | 127.0.0.1:28103 | baixyu | Query | 406 | Waiting for table metadata lock | CR...
-- ERROR: Table must not have any foreign keys defined (neither as parent nor child). [root@yayun-mysql-server ~]# 1. 2. 3. 4. 5. 6. 7. 很明显提示有外键,也是上面提到的限制 (root@localhost 16:50:53)[dyy]> show create table t1\G ...
I don't know if it uses INPLACE, but what's sure is that all INSERT and UPDATE queries in the same table remain locked in the state "waiting for table metadata log" or something like that for the whole duration of the ALTER operation (while it is in "copying to tmp table") ...
ALTER TABLE modifies a table definition by altering, adding, or dropping columns and constraints. ALTER TABLE also reassigns and rebuilds partitions, or disables and enables constraints and triggers.