【问题标题】:large sqlite database to mysql大型sqlite数据库到mysql
【发布时间】:2015-08-11 12:11:16
【问题描述】:

我的 CentOS 7 sever 上有 3 个 sqlite3 数据库文件,从 170G1.07T。我可以通过sqlite3 logs.db .dump > logs.sql创建转储文件,但是这些sql文件由于语法原因无法导入到MySQL

我已经阅读了这些解决方案:

Quick easy way to migrate SQLite3 to MySQL?

http://www.sqlite.org/cvstrac/wiki?p=ConverterTools

http://www.redmine.org/boards/2/topics/12793

https://realpython.com/blog/python/web2py-migrating-from-sqlite-to-mysql/

https://github.com/athlite/sqlite3-to-mysql

我尝试了其中一些,但似乎不起作用。我没有足够的内存来搜索和替换string

是否有一些有效的方法可以迁移大型sqlite 数据库?

【问题讨论】:

  • 您能否分两步处理结构和数据?导出创建表的语句,并根据语法差异在必要时修改这些语句。然后将数据导出为 CSV,以便您可以将其导入到已经准备好的 MySQL 表中(使用LOAD DATA INFILE 或类似的东西。)
  • 您应该尝试一些多数据库管理应用程序,例如 Navicat Premium,它可以在各种数据库类型之间迁移数据 - navicat.com/products/navicat-premium
  • 谢谢,@CBroe!我不太确定。如果您查看redmine.org/boards/2/topics/12793 中的步骤,不仅是语句,还有值和符号。该脚本逐行进行。
  • 谢谢,@OndřejŠotek!我想......购买的解决方案就可以了。忘了补充问题,我正在寻找一些免费的解决方案...不要认为我的主管愿意为此支付 600 美元...

标签: mysql sqlite


【解决方案1】:

显然我没有使用http://www.redmine.org/boards/2/topics/12793 中的所有脚本,我只使用了the latest script by Peter sørensen,它无法处理大文件,因为控制台返回“Killed”。我想这与临时文件操作有关。

Pavel Medvedev's script 解决了我的问题。尽管彼得的帖子说更新的脚本处理“当刺痛跨越多行时,并非所有都转换为正确的 mysql 值的问题”。我的 sql 文件有多行字符串,Pavel 的脚本可以处理它。这里没有问题。也许彼得提到的问题会发生在某人的文件中。

【讨论】:

    猜你喜欢
    • 2010-11-03
    • 1970-01-01
    • 2010-10-03
    • 2011-09-13
    • 2014-07-05
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    相关资源
    最近更新 更多