例會話一
select id,sleep(60) from t1;
因未執行完,t1表持有METADATA LOCK(MDL)元數據鎖
會話二
FLUSH TABLES;
在MariaDB 10.4 版本之前,執行FLUSH TABLES會把全部的表強制關閉,因會話一持有MDL元數據鎖,固FLUSH TABLES會等待Waiting for table metadata lock
在MariaDB 10.4 GA版本,將只關閉未使用的表,正在使用中的表忽略不受影響。(除非你手工指定表,如FLUSH TABLES t1,將會強制關閉t1表)
場景:MHA在線切換調用master_ip_online_change腳本時,第一步會執行FLUSH NO_WRITE_TO_BINLOG TABLES關閉全部表,此時若是你的數據庫有未執行完的慢SQL,FLUSH NO_WRITE_TO_BINLOG TABLES就會卡住,致使沒法切換。
注:MySQL 8.0.17版本不支持該功能數據庫