gpt4 book ai didi

mysql 在导入数据库转储时挂起

转载 作者:可可西里 更新时间:2023-11-01 08:01:32 24 4
gpt4 key购买 nike

我们有一个来自生产数据库的数据库转储导入脚本,用于重建我们的沙箱数据库。我们为此使用的语法是 mysql -u uname -ppass dbname < prod_db_export.sql .该脚本继续创建第一个表,然后执行此操作:

LOCK TABLES `ad` WRITE;
/*!40000 ALTER TABLE `ad` DISABLE KEYS */;
/*!40000 ALTER TABLE `ad` ENABLE KEYS */;
UNLOCK TABLES;

ad表中没有数据所以在 DISABLE KEYS 之后没有导入语句线。无论如何,此时导入挂起,当我们使用 processlist 查询数据库时我们看到这样的输出:

| 5116 | uname     | localhost | dbname     | Field List |   85 | Waiting for table |                        | 
| 5121 | uname | localhost | dbname | Query | 44 | Waiting for table | LOCK TABLES `ad` WRITE |
| 5126 | uname | localhost | dbname | Field List | 23 | Waiting for table | |

有人知道什么会导致这种情况发生吗?更好的是,如何解决它?

如果可能的话,我们的 SA 不想重新启动 mysql,因为他担心它会无法重新启动(上次我们遇到类似情况时发生过这种情况,他不得不重建整个数据库,包括所有沙箱的数据库,来自备份)。

我们随后创建了一个新数据库 dbname2,并且能够成功运行导入,没有挂起,processlist 中没有表锁定消息。

最佳答案

在我的例子中,它在重启 mysql 服务后工作

sudo service mysql restart

关于mysql 在导入数据库转储时挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1639722/

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