当导入的.sql文件太大时,mysql就会出现各种奇葩的问题。
比如,常见的MYSQL HAS GONE AWAY。
其实出现上面这种错误的情况很常见。通常情况下都是要修改my.cnf中max_allowed_packet。这个参数的主要作用是控制mysql发包的文件大小。一般为默认值。如果出现了上述的错误,可以考虑优先修改这个值,如500M。重启实例后,再执行导入文件。一般都可以成功导入。
但是上述的方法并适合在生产数据库中进行操作。毕竟要重启实例。那么一个好的方法是将mysqldump出来的文件拆分成若干个小文件执行导入。或者,将导出的insert语句每次只插入若干行。控制流量也是一个比较好的方法。
再或者,假如我们控制好流量了,但还是出现GONE AWAY的错误。那么,最好的方法就是在mysql的命令行下执行source命令。这样,我们可以看到具体是在什么错误时停止了导入工作(比如,插入时不存在表了。这通常都是大问题,我们不能完全保证mysqldump出来的文件就一定可用)。所以,在制定备份和恢复计划的时候,一个非常重要的计划就是:定期抽查备份,保证备份的可用性。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。