將sqlite3中數(shù)據(jù)導(dǎo)入到mysql中的實(shí)戰(zhàn)教程
前言
sqlite3只小巧輕便,但是并不支持并發(fā)訪(fǎng)問(wèn),當(dāng)網(wǎng)站并發(fā)量較大時(shí)候,數(shù)據(jù)庫(kù)請(qǐng)求隊(duì)列邊長(zhǎng),有可能導(dǎo)致隊(duì)列末尾去數(shù)據(jù)庫(kù)操作超時(shí),從而操作失敗。因此需要切換到支持并發(fā)訪(fǎng)問(wèn)的數(shù)據(jù)庫(kù)。切換數(shù)據(jù)庫(kù)需要將老的數(shù)據(jù)導(dǎo)出,再導(dǎo)入到新的數(shù)據(jù)庫(kù)中,但是sqlite3和mysql的數(shù)據(jù)庫(kù)并不完全兼容,需要做部分調(diào)整才能正常導(dǎo)入到mysql中。我最近工作中就遇到了這個(gè)問(wèn)題。
最近一個(gè)項(xiàng)目中使用magenetico抓取磁力鏈接,由于它使用的是sqlite3, 文件會(huì)越來(lái)越大,而且不支持分布式;所以需要將其改造成MySQL,在遷移之前需要將已經(jīng)抓取的15G數(shù)據(jù)導(dǎo)入到MySQL,下面來(lái)一起看看詳細(xì)的介紹吧
方法如下:
從sqlite3文件dump出sql
sqlite3 database.sqlite3 sqlite3> .output /path/to/dump.sql sqlite3> .dump sqlite3> .exit
切分文件
文件比較大的時(shí)候,很有導(dǎo)入到一半的時(shí)候失敗,這個(gè)時(shí)候需要從失敗的行開(kāi)始切分出一個(gè)新的sql文件來(lái)
awk '{if (NR>=6240863) print $0>"dump_part.sql"}' dump.sql
mysql參數(shù)修改
[mysqld] max_allowed_packet = 100M
sql兼容, 符號(hào)替換
# 1. 刪除不包含 INSERT INTO 的行 # 2. 替換表名 wrap # 3. 替換 hex sed '/INSERT INTO/!d;s/"table1"/`table1`/;s/"table2"/`table2`/;s/,X/,/' dump.sql
導(dǎo)入到MySQL
# 加上 force 參數(shù), 防止部分有問(wèn)題的sql阻止導(dǎo)入 mysql -uroot -p -f magnet < dump.sql
引用
How To Use The SQLite Dump Command
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
- php基于Fleaphp框架實(shí)現(xiàn)cvs數(shù)據(jù)導(dǎo)入MySQL的方法
- MySQL中數(shù)據(jù)導(dǎo)入恢復(fù)的簡(jiǎn)單教程
- PHP把MSSQL數(shù)據(jù)導(dǎo)入到MYSQL的方法
- MySQL中使用load data命令實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入的方法
- 解析csv數(shù)據(jù)導(dǎo)入mysql的方法
- phpMyAdmin下將Excel中的數(shù)據(jù)導(dǎo)入MySql的圖文方法
- 3步搞定純真IP數(shù)據(jù)導(dǎo)入到MySQL的方法詳解
- Excel數(shù)據(jù)導(dǎo)入Mysql數(shù)據(jù)庫(kù)的實(shí)現(xiàn)代碼
- 如何把ACCESS的數(shù)據(jù)導(dǎo)入到Mysql中
- MYSQL大數(shù)據(jù)導(dǎo)入
- 分析Mysql大量數(shù)據(jù)導(dǎo)入遇到的問(wèn)題以及解決方案
相關(guān)文章
Linux下實(shí)現(xiàn)OpenGauss數(shù)據(jù)庫(kù)遠(yuǎn)程連接的教程
openGauss是一款開(kāi)源關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),采用木蘭寬松許可證v2發(fā)行,本文主要為大家詳細(xì)介紹了如何在Linux環(huán)境下實(shí)現(xiàn)OpenGauss數(shù)據(jù)庫(kù)遠(yuǎn)程連接,需要的可以參考下2023-09-09在SQL SERVER中查詢(xún)數(shù)據(jù)庫(kù)中第幾條至第幾條之間的數(shù)據(jù)SQL語(yǔ)句寫(xiě)法
這篇文章主要介紹了在SQL SERVER中查詢(xún)數(shù)據(jù)庫(kù)中第幾條至第幾條之間的數(shù)據(jù)SQL語(yǔ)句寫(xiě)法,需要的朋友可以參考下2015-11-11關(guān)于若干數(shù)據(jù)庫(kù)數(shù)據(jù)插入性能的對(duì)比分析
前幾天,苦惱于到底使用哪一種本地?cái)?shù)據(jù)庫(kù)來(lái)存儲(chǔ)部分?jǐn)?shù)據(jù),于是決定做一個(gè)數(shù)據(jù)插入測(cè)試進(jìn)行求證2011-10-10SQL行轉(zhuǎn)列、列轉(zhuǎn)行的簡(jiǎn)單實(shí)現(xiàn)
這篇文章主要給大家介紹了關(guān)于SQL行轉(zhuǎn)列、列轉(zhuǎn)行的簡(jiǎn)單實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用SQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05大數(shù)據(jù)開(kāi)發(fā)phoenix連接hbase流程詳解
HBase是一個(gè)分布式的、面向列的開(kāi)源數(shù)據(jù)庫(kù),該技術(shù)來(lái)源于?Fay?Chang?所撰寫(xiě)的Google論文“Bigtable:一個(gè)結(jié)構(gòu)化數(shù)據(jù)的分布式存儲(chǔ)系統(tǒng)”。就像Bigtable利用了Google文件系統(tǒng)(File?System)所提供的分布式數(shù)據(jù)存儲(chǔ)一樣,HBase在Hadoop之上提供了類(lèi)似于Bigtable的能力2022-11-11RBAC簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了RBAC簡(jiǎn)介,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08數(shù)據(jù)庫(kù)的設(shè)計(jì)方法、規(guī)范與技巧
數(shù)據(jù)庫(kù)的設(shè)計(jì)方法、規(guī)范與技巧...2007-03-03