atitit查询表修改表字段没反应--解锁锁定的表
atitit查询表修改表字段没反应--解锁锁定的表
查询表修改表字段没反应
要是使用gui 没反应,最好使用cmd 方式,不卉不个gui 锁上..
ALTER TABLE t_mb_awardweixin MODIFY awardChoiceNumLeft int(11) DEFAULT NULL
#-----分析..
1.首先,查询by另一个表格, 要是能查询,显示不是max conn的问题..也许表格锁定了..
2. show full PROCESSLIST 要是看到个Waiting for table metadata lock
3. 查询锁上的表格. show OPEN TABLES where In_use > 0;
作者 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
#---------原因MDL:::
一个没提交的事务使用了A表, 另外一个session 对A表进行alter,出现waiting for table metadata lock
在insert into t select * from share 运行时, 同时执行alter table t add index(play_count),
alter table语句会Waiting for table metadata lock, 直到insert into … select 语句结束。
概述
随着5.5.3引入MDL,更多的Query被“Waiting for table metadata lock”给'炕'了
SHOW PROCESSLIST的输出也有之前的"Locked"变得粒度更加细的'Waiting for table metadata lock'
引入MDL,当需要访问、修改表结构时,都需要对元数据上锁(读/写)
MDL在Server层,保护表数据结构,而非数据本身。Server比之前版本繁忙多了
MDL意味着DDL,一旦DDL被阻塞,那么面向该表的所有Query都会被挂起,包括Select,不过5.6作了改进,5.5可通过参数控制
3.应用中使用了连接池..但是又要ddl...连接池老是连续start 有些conn, kill李韩式有自动开始..造成后面儿ddl 不能执行..
#----解决
1. 设置lock_wait_timeout=50 ,默认1年.. 仅仅下一次时间生效..当前只有kill 才可以解决..
2. kill 锁上 conn ( DDM alter 的query sql) ,,,,别的query 事务奏能连续兰..
3. 对付连接池, 可以设置timeout自动关闭连接.. 但是要重启生效..要是应用重要性,不能重启,可以使用防火墙阻止java进程 访问网络... 批处理kill id ,, 查看一下,应该不会自动连接池连接上了,,,在ddl操作,在放开.....
#----结论:
在准备alter table tbl 的时候,先观察一下,有没有正在运行的,且在短时间内无法结束的sql语句在操作tbl表
结论:
当需要对"热表"做DDL,需要特别谨慎,否则,容易造成MDL等待,导致连接耗尽或者拖垮Server
参考
mysql出现Waiting for table metadata lock的原因及解决方案 - mysql数据库栏目 - 红黑联盟.htm
imptt 初步认知MySQL metadata lock(MDL) - DBA@DevOps - 博客频道 - CSDN.NET.htm
atitit查询表修改表字段没反应--解锁锁定的表的更多相关文章
- atitit查询表改动表字段没反应--解锁锁定的表
atitit查询表改动表字段没反应--解锁锁定的表 查询表改动表字段没反应 要是使用gui 没反应,最好使用cmd 方式,不卉不个gui 锁上.. ALTER TABLE t_mb_awardweix ...
- MySQL修改表字段相关信息
昨天收获颇多,首先回顾一下有关mysql的内容. 我在查询表信息时,出现了 empty set 0.00 sec 的错误,我很奇怪,仔细检查发现原来是表字段名称写错了, 于是我想修改字段名称,经过查询 ...
- db2中修改表字段的长度,查看表字段长度,以及查看表字段已存放值大小
修改表字段语句: alter table 表名 alter column 字段名 set data type varchar(7700) 如: ALTER TABLE JV_BI_BACK_OPER ...
- MySQL查询表与表字段的信息
环境: Mysql数据库 库名:db_name 表名: table_name1 table_name2 查询一个里面所有表的信息: use information_scheam; select * f ...
- mysql中修改表字段名/字段长度/字段类型详解
在mysql中我们对数据表字段的修改命令只要使用alter就可以了,下面我来给大家详细介绍mysql中修改表字段名/字段长度/字段类型等等一些方法介绍,有需要了解的朋友可参考. 先来看看常用的方法 M ...
- MySQL修改表的默认字符集和修改表字段的默认字符集
修改表的默认字符集: ALTER TABLE table_name DEFAULT CHARACTER SET character_name; 修改表字段的默认字符集: ALTER TABLE tab ...
- Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查
本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...
- 在SQL Server 2008 Management Studio中修改表字段顺序
有时我们可能需要为一个已存在的数据库表添加字段,并且想让这个字段默认排的靠前一些,这时就需要为表字段重新进行排序,默认情况下在Management Studio中调整顺序并保存时会提示"不允 ...
- 使用SQL语句查询表及表字段类型说明
今天突然遇到有人要数据库表及表字段说明,数据库表太多又不能一个个表去找,就想想SQL是否能直接查询出来. 经过查询资料,加上一些自己的一些调整写了一个sql语句,在此记录一下,以方便日后查找使用. S ...
随机推荐
- ios SourceTree中添加git项目工程文件
1.创建远程git仓库 2.复制远程仓库地址,最好选择http的地址. 3.在自己的电脑上下载一个SourceTree,然后在自己的电脑上建立链接. 点击左上角的+号桶开始添加,弄好点击Clone 4 ...
- 新创建的项目利用git添加远程仓库
git initgit remote add origin https:// //git账号中的网址 (git remote //可以查询添加的远程仓库) git add . //添加刚刚导入的整个工 ...
- css3 进度条
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>1 ...
- Linux crontab命令的使用方法
crontab命令常见于Unix和Linux的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行. 在 ...
- SQL获取所有数据库名、表名、储存过程以及参数列表
SQL获取所有数据库名.表名.储存过程以及参数列表 1.获取所有用户名:SELECT name FROM Sysusers where status='2' and islogin='1'islogi ...
- css 单位-px、em、rem、百分比
px像素(Pixel,像素px是相对于显示器屏幕分辨率而言的. em是相对长度单位.相对于当前对象内文本的字体尺寸.如当前对行内文本的字体尺寸未被人为设置,则相对于父级元素字体尺寸(若父级元素未指定f ...
- Python学习第八天(os)
os主要是实现文件夹的创建和管理功能 os.mkdir(path) 创建目录 os.chdir(path)改变当前工作目录 os.fchdir() 通过文件描述符改变工作目录 os.chroot() ...
- CDN在中国的发展的九个年头的点点滴滴
对于发展快速的互联网行业来说,8年时间已经足够让一个产业跌宕起伏.但CDN在国内的发展却没有大红大紫,直到2005... 对于发展快速的互联网行业来说,8年时间已经足够让一个产业跌宕起伏.但CDN在国 ...
- Jquery点击发送按钮后,按钮文本倒计时
1.html代码 <input type="number" id="mobileNo" placeholder="请输入手机号" /& ...
- [Linux]CentOS下安装和使用tmux
前天随意点开博客园,看到了一篇关于tmux的文章 Tmux - Linux从业者必备利器,特意还点进去看了.毕竟Linux对于做游戏服务端开发的我来说,太熟悉不过了.不过我就粗略地看了一眼,就关掉了. ...