sqlite3导入到mysql

背景

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

从sqlite3文件dump出sql

sqlite3 database.sqlite3
sqlite3> .output /path/to/dump.sql
sqlite3> .dump
sqlite3> .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. 替换 hex
sed '/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

标签: none

已有 18 条评论

  1. sqlite3数据库15G,太恐怖了吧。

  2. 虽然不知道说的是什么,但看起来好厉害的样子!

  3. Liehua Liehua

    你好, 我想用问问你的归档页面是怎么弄的。我也想弄个。

  4. WRZ WRZ

    既然还能访问,可惜emLog程序

  5. 菜鸡 菜鸡

    其实从博主更新的频率来看,就能看出来美团的加班时间确实比之前两家长

    1. 然而并不是,影响的因素很多

      1. Nicky Ye Nicky Ye

        17年就一直在美团的吗,站长? 恭喜恭喜,发财了!

添加新评论