【问题标题】:How can I override the ENGINE=INNODB parameter while importing a MySQL dump file?如何在导入 MySQL 转储文件时覆盖 ENGINE=INNODB 参数?
【发布时间】:2011-12-06 02:12:11
【问题描述】:

我有一个大转储(数十 GB),我想在不考虑 ENGINE=INNODB 参数的情况下将其导入新表。

我尝试了几个专用于大文件的编辑器来编辑转储,但保存修改总是需要很多时间,因此忽略 ENGINE=INNODB 参数并覆盖它会更有意义(例如默认引擎)。

导入然后更改引擎不是一种选择,因为 InnoDB 导入转储的速度非常慢,因此需要几天时间。

【问题讨论】:

    标签: mysql database import innodb mysqldump


    【解决方案1】:

    如果您使用的是 linux/unix 系统,如何使用 sed 进行就地编辑

    sed -i 's/ENGINE=INNODB/ENGINE=MYISAM/g' filename
    

    【讨论】:

    • 值得一提的是,万一数据库中的某些数据实际上包含文本ENGINE=INNODB,该命令会损坏数据。
    • 使用sed -i -re 's/^(\) ENGINE=)INNODB/\1MyISAM/gi',它应该是安全的,因为实际数据中不应该有未编码的换行符。
    • 大功告成。谢谢:)
    【解决方案2】:

    mysqldump --compatible=no_table_options

    为我工作

    【讨论】:

      猜你喜欢
      • 2012-09-22
      • 1970-01-01
      • 2018-08-15
      • 2016-10-23
      • 2021-04-11
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      • 2013-09-06
      相关资源
      最近更新 更多