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

已有 16 条评论

  1. Liehua Liehua

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

  2. WRZ WRZ

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

  3. 菜鸡 菜鸡

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

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

      1. Nicky Ye Nicky Ye

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

添加新评论