首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL ALTER TABLE挂起

MySQL ALTER TABLE挂起
EN

Stack Overflow用户
提问于 2016-02-09 21:42:54
回答 2查看 19K关注 0票数 21

我知道这个问题已经被问了好几次了,但是我的问题发生在我刚刚创建的一个表上。它只有10列和1行。

因此,与通常的挂起问题不同,这不是包含大量数据的大型表的情况。但它还是挂了。

这是我正在运行的SQL:

代码语言:javascript
复制
ALTER TABLE `db`.`Search` 
ADD COLUMN `useremail` VARCHAR(256) NOT NULL COMMENT '' AFTER `id`;

很简单,但它仍然挂起(50分钟,而且还在继续)。我尝试退出WorkbenchEclipse,并删除所有java进程和一个mysqld进程。但没那么走运。

我在Mac OSX El Capitain上运行。如何将此列添加到表中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-07 22:01:06

我是通过搜索"mysql alter table hanging“找到这个问题的,我认为答案(在注释中)应该被记录下来。

如果您正在运行一个MySQL命令(在本例中是为了添加一列),并且该命令意外挂起,例如,不是由于表中数据的大小,那么请检查针对数据库运行的其他进程。我让查询继续运行,使用另一个客户机连接到服务器,然后输入

代码语言:javascript
复制
SHOW PROCESSLIST;

我的查询挂起了,此消息位于state列中:

代码语言:javascript
复制
Waiting for table metadata lock

我注意到我的机器上有几个僵尸连接,杀死了它们(KILL xxx,其中xxxId列中的数字),然后这个过程立即结束。

票数 57
EN

Stack Overflow用户

发布于 2018-08-09 23:27:54

我在生产服务器的Galera集群(MariaDB)上遇到了同样的问题,冻结是由于alter table add column使用默认值造成的,我可以看到使用SHOW PROCESSLIST我关闭了服务器以强制终止进程,但我有很多工作要重新启动集群。

第二次发生的时候,我所做的就是等待查询完成,因为它需要处理150万行的表,所以我花了大约20分钟的时间。,,。那么表的锁是打开的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35293625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档