sqlite3导入mysql方法详解: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. 替换 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

相关文章

SQLite架构简单,又有Json计算能力,有时会承担Json文件/RES...
使用Python操作内置数据库SQLite以及MySQL数据库。
破解微信数据库密码,用python导出微信聊天记录
(Unity)SQLite 是一个软件库,实现了自给自足的、无服务器...
安卓开发,利用SQLite实现登陆注册功能