一尘不染

如何将mysqldump的输出拆分为较小的文件?

mysql

我需要将整个表从一个MySQL数据库移动到另一个数据库。我没有完全访问第二个权限,只有phpMyAdmin访问权限。我只能上传(压缩)小于2MB的sql文件。但是,第一个数据库表的mysqldump的压缩输出大于10MB。

有没有办法将mysqldump的输出分成较小的文件?我无法使用split(1),因为无法将文件分类(1)到远程服务器上。

还是我错过了其他解决方案?

编辑

第一个发布者建议的mysqldump的–extended-insert =
FALSE选项将产生一个.sql文件,然后可以将其拆分为可导入的文件,只要使用适当的–
lines选项调用split(1)即可。通过反复试验,我发现bzip2将.sql文件压缩了20倍,因此我需要找出多少行sql代码大致对应于40MB。


阅读 524

收藏
2020-05-17

共1个答案

一尘不染

首先转储架构(它肯定适合2Mb,不是吗?)

mysqldump -d --all-databases

并恢复它。

之后,仅将数据转储到单独的插入语句中,因此您可以拆分文件并还原它们,而不必在远程服务器上将它们串联起来

mysqldump --all-databases --extended-insert=FALSE --no-create-info=TRUE
2020-05-17