我有一个大约6GB的数据库,它有一个1260万行的表。我尝试通过以下方式将数据库导出到SQL转储中:
mysqldump -u root -p db_name> db_name.sql
命令完成后,导出的SQL转储文件大约为2GB,主表只导出大约100万行。
什么可能是错的?
由于某种原因,有2GB的文件大小限制,最简单的解决方法是使用split
:
mysqldump ... | split -b 250m - filename.sql-
您还可以像这样压缩文件:
mysqldump ... | gzip -9c | split -b 250m - filename.sql.gz-
要从非压缩文件还原,请执行以下操作:
cat filename.sql-* | mysql ...
对于压缩文件:
cat filename.sql-* | zcat | mysql ...
当然,如果你想要一个文件,你可以tar
结果。
显然,如果你愿意,你可以用不同的尺寸替换250m
。
您的文件系统可能仅限于2GB文件。
之所以会发生这种情况,是因为某些SQL Dump的转储数据大小有限。如果数据库超出限制,则无法转储数据库。
如果你真的想这样做,你必须压缩数据库。使用ZIP,GZIP等。在转储数据之前。
我有类似的,虽然所有的表都被导出到某一点。
我删除了一个旧冗余视图所依赖的列,并且mysqldump悄悄地ch咽试图“导出”视图