IT技术博客大学习 共学习 共进步

sqlite3导入到mysql

也就这样, 2017-10-15 09:41:14 浏览 2,261 次

背景

使用magenetico抓取磁力链接,由于它使用的是sqlite3, 文件会越来越大,而且不支持分布式;所以需要将其改造成MySQL,在迁移之前需要将已经抓取的15G数据导入到MySQL

从sqlite3文件dump出sql

sqlite3 database.sqlite3sqlite3> .output /path/to/dump.sqlsqlite3> .dumpsqlite3> .exit

切分文件

文件比较大的时候,很有导入到一半的时候失败,这个时候需要从失败的行开始切分出一个新的sql文件来

awk'{if (NR>=6240863) print $0>"dump_part.sql"}' dump.sql

mysql参数修改

[mysqld]max_allowed_packet = 100M

sql兼容, 符号替换

# 1. 删除不包含 INSERT INTO 的行# 2. 替换表名 wrap# 3. 替换 hexsed '/INSERT INTO/!d;s/"table1"/`table1`/;s/"table2"/`table2`/;s/,X/,/' dump.sql

导入到MySQL

# 加上 force 参数, 防止部分有问题的sql阻止导入mysql -uroot -p -f magnet < dump.sql

引用

How To Use The SQLite Dump Command

建议继续学习

  1. MySQL数据库在实际应用一些方面的介绍 (阅读 36,282)
  2. 我对技术方向的一些反思 (阅读 11,142)
  3. Using MySQL as a NoSQL (阅读 6,961)
  4. MySQL协议分析 (阅读 5,843)
  5. 在perl中连接和使用sqlite做数据存储 (阅读 5,701)
  6. 从Mysql到Sqlite的迁移 (阅读 5,341)
  7. Python连接 MySQL 数据库的超时问题 (阅读 5,045)
  8. 基于MySQL的高可用可扩展架构探讨 (阅读 4,882)
  9. 分析MySQL的授权许可 (阅读 4,604)
  10. MySQL和MongoDB设计实例对比 (阅读 4,520)