Mysql 修改多个列需要重新启动服务器

Mysql 修改多个列需要重新启动服务器,mysql,Mysql,我有一个完全空的表,有六列: | url | varchar(50) | NO | PRI | NULL | | | column1 | varchar(40) | YES | | NULL | | | column2 | datetime | YES | | NULL | | | column3 | text | YES | | N

我有一个完全空的表,有六列:

| url           | varchar(50) | NO   | PRI | NULL    |       |
| column1       | varchar(40) | YES  |     | NULL    |       |
| column2       | datetime    | YES  |     | NULL    |       |
| column3       | text        | YES  |     | NULL    |       |
| column4       | varchar(20) | YES  |     | NULL    |       |
| column5       | tinyint(1)  | YES  |     | NULL    |       |
我可以修改一列,但效果很好:

ALTER TABLE tablename MODIFY column4 VARCHAR(30);

Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

但是,只要我尝试修改另一列,光标就会不停地闪烁,直到我重新启动服务器并重试,才会发生任何事情。非常感谢您的帮助。

这只是一个猜测,但如果此表大于可用磁盘空间,则您可能会耗尽执行ALTER TABLE的磁盘空间。我的磁盘空间大于100GB,并且表中没有记录。另一种可能是该表被元数据锁锁定。针对该表的任何长时间运行的查询或事务都将阻塞ALTER table。当然,重新启动会中断长时间运行的查询。查看我对运行
SHOW FULL PROCESSLIST
的回答,这可能有助于检查在
ALTER TABLE
queryWrite here mysql确切版本之外的过程中发生了什么。第一步我建议DB更新到最新版本。