gpt4 book ai didi

MySQL 更改表数据库卡住

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:14:27 25 4
gpt4 key购买 nike

我正在使用 Ubuntu 16.04.3 和 mysql Ver 14.14 Distrib 5.7.22。

当我尝试使用以下命令更改我的数据库表列时,数据库似乎卡住了;

mysql> alter table records modify column name varchar(150);

表大小为 2.8MiB(6,000 条记录)。

我只是想更改 varchar(150) 部分。

我曾尝试在 HeidiSQL 和 Workbench 等 GUI 程序中做同样的事情,结果相同 - 程序崩溃,我必须重新启动 session 。

我以 root 身份登录数据库和服务器。我检查了 /var/log/mysql/error.log 但它只显示失败的登录尝试,与此错误无关。

知道发生了什么事或如何解决这个问题吗?

最佳答案

您是否有任何应用程序针对此表运行长时间运行的事务?如果有任何事务持有元数据锁,它将无法启动 ALTER TABLE。

如果您可以在另一个窗口中运行 SHOW PROCESSLIST 而 ALTER TABLE 似乎挂起,它可能会显示“等待元数据锁定”。

+----+------+-----------+------+---------+------+---------------------------------+------------------------+-----------+---------------+
| Id | User | Host | db | Command | Time | State | Info | Rows_sent | Rows_examined |
+----+------+-----------+------+---------+------+---------------------------------+------------------------+-----------+---------------+
| 4 | root | localhost | test | Query | 0 | init | show processlist | 0 | 0 |
| 5 | root | localhost | test | Query | 15 | Waiting for table metadata lock | alter table foo... | 0 | 0 |
+----+------+-----------+------+---------+------+---------------------------------+------------------------+-----------+---------------+

然后您需要找出哪个应用程序有一个打开的事务正在阻止 ALTER TABLE,并让该应用程序完成它的事务,或者终止该事务。

关于MySQL 更改表数据库卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55243826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com