Loading... # 引言 最近做项目移植,本地的数据导出为SQL文件,高达31G,欲写入到服务器。 # 建议 使用INSERT INTO VALUES (),() 语句,而不是每条记录都写一个INSERT INTO 不使用navicat、datagrip等客户端工具,因为这样执行的效率低(网络和文件IO) 使用mysql的source或< 进行写入。 调大`max_allowed_packet`值 ![image.png](https://www.zunmx.top/usr/uploads/2023/02/837500212.png) ```sql -- 比如 mysql -uroot -p****** source /tmp/a.sql -- 或者 mysql -uroot -p****** [database] < /tmp/a.sql 如果时间长,链接不稳定,可以考虑nohup ``` # 结语 > 怀疑运维没有调整`max_allowed_packet`的值,所以还原了1晚上,才还原18G数据,今天仍在还原。 > 破案了,查看了一下sql文件,每条记录都有一个INSERT,重新使用mysqldump导出的1h就还原成功了。 # ps 如果昨天一直等着的话,得等到现在了。::>_<:: © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 1 如果觉得我的文章对你有用,请随意赞赏