【问题标题】:How do I split a large MySQL backup file into multiple files? [duplicate]如何将大型 MySQL 备份文件拆分为多个文件? [复制]
【发布时间】:2011-04-19 22:38:53
【问题描述】:

我有一个 250 MB 备份 SQL 文件,但新主机的限制只有 100 MB...

有没有一个程序可以让你将一个 SQL 文件拆分成多个 SQL 文件?

【问题讨论】:

  • 如果您想在 Windows / Mac / Linux 上快速简单地执行此操作,请使用:SQL Dump Splitter 3 并且不要忘记手动添加/删除事务脚本。

标签: mysql database-backups splitter


【解决方案1】:

您可以在 Eclipse 中拆分一个大文件。我已经在 Windows 中成功尝试了一个 105GB 的文件:

只需将 MySQLDumpSplitter 库添加到您的项目中: http://dl.bintray.com/verace/MySQLDumpSplitter/jar/

关于如何导入的快速说明:

  • 在 Eclipse 中,右键单击您的 项目 --> 导入
  • 选择文件系统,然后选择下一步
  • 浏览jar文件的路径并按确定
  • 选择(加粗)MySQLDumpSplitter.jar 文件,然后完成
  • 它将被添加到您的项目中并显示在 Eclipse 中 Package Explorer 的项目文件夹中
  • 在 Eclipse 中双击 jar 文件(在 Package Explorer 中)
  • MySQL 转储文件拆分器窗口打开,您可以指定转储文件的地址并继续拆分

【讨论】:

    【解决方案2】:

    它并不漂亮(因为它只是按大小拆分,而不是按文件中的逻辑拆分)但您可以使用 unix 拆分工具来完成此操作:

    mysqldump mydb | split -b 100m mydbbackup
    

    确保检查手册页是否有拆分,您的副本可能接受也可能不接受 100m 大小的参数。有些需要以字节为单位指定大小。

    当您从文件中恢复时,您必须使用 cat 将它们重新组合在一起。

    cat mydbbackup.1 mydbbackup.2 mydbbackup.3 | mysql
    

    【讨论】:

    • 对不起,这不是我要说的。我只有 250 MB 的文件,旧的数据库不再存在于旧主机上。我们有一个新主机,限制为 100 MB,所以我需要多个较小的文件,并仅从一个 250 MB 文件创建它们......现在不能用 mysqldump 做任何事情......除非我在本地导入它有没有限制然后做一个mysqldump ...但是cat'ing不起作用。
    • @BrianTHannan 之后您可以使用以下命令拆分文件:split -l 5000 ./path/to/mysqldump.sql ./mysqldump/dbpart- 请参阅 [webmaster-source.com/2011/09/26/…
    【解决方案3】:

    你可以使用 mysql_export_explode https://github.com/barinascode/mysql-export-explode

    <?php 
    #Including the class
    
    include 'mysql_export_explode.php';
    $export = new mysql_export_explode;
    
    $export->db = 'dataBaseName'; # -- Set your database name
    $export->connect('host','user','password'); # -- Connecting to database
    $export->rows = array('Id','firstName','Telephone','Address'); # -- Set which fields you want to export
    $export->exportTable('myTableName',15); # -- Table name and in few fractions you want to split the table
    ?>
    
    At the end of the SQL files are created in the directory where the script is executed in the following format
    ---------------------------------------
    myTableName_0.sql
    myTableName_1.sql
    myTableName_2.sql
    ...
    

    【讨论】:

    • 请不要将完全相同的answer 复制并粘贴到多个问题中。每个答案都应该定制以回答所提出的问题,而不是提供通用的复制/粘贴。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 2022-01-16
    • 2019-10-21
    • 2017-01-27
    • 1970-01-01
    相关资源
    最近更新 更多