源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

将sqlite3中数据导入到mysql中的实战教程

  • 时间:2020-10-11 15:11 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:将sqlite3中数据导入到mysql中的实战教程
[b]前言[/b] sqlite3只小巧轻便,但是并不支持并发访问,当网站并发量较大时候,数据库请求队列边长,有可能导致队列末尾去数据库操作超时,从而操作失败。因此需要切换到支持并发访问的数据库。切换数据库需要将老的数据导出,再导入到新的数据库中,但是sqlite3和mysql的数据库并不完全兼容,需要做部分调整才能正常导入到mysql中。我最近工作中就遇到了这个问题。 最近一个项目中使用magenetico抓取磁力链接,由于它使用的是sqlite3, 文件会越来越大,而且不支持分布式;所以需要将其改造成MySQL,在迁移之前需要将已经抓取的15G数据导入到MySQL,下面来一起看看详细的介绍吧 [b]方法如下:[/b] [b]从sqlite3文件dump出sql[/b]
sqlite3 database.sqlite3
sqlite3> .output /path/to/dump.sql
sqlite3> .dump
sqlite3> .exit
[b]切分文件[/b] 文件比较大的时候,很有导入到一半的时候失败,这个时候需要从失败的行开始切分出一个新的sql文件来
awk '{if (NR>=6240863) print $0>"dump_part.sql"}' dump.sql
[b]mysql参数修改[/b]
[mysqld]
max_allowed_packet = 100M
[b]sql兼容, 符号替换[/b]
# 1. 删除不包含 INSERT INTO 的行
# 2. 替换表名 wrap
# 3. 替换 hex
sed '/INSERT INTO/!d;s/"table1"/`table1`/;s/"table2"/`table2`/;s/,X/,/' dump.sql
[b]导入到MySQL[/b]
# 加上 force 参数, 防止部分有问题的sql阻止导入
mysql -uroot -p -f magnet < dump.sql
[b]引用[/b] [url=http://www.sqlitetutorial.net/sqlite-dump/]How To Use The SQLite Dump Command[/url] [b]总结[/b] 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程素材网的支持。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部