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更新到最新版本。