將sqlite3中資料匯入到mysql中的實戰教程,sqlite3mysql

來源:互聯網
上載者:User

將sqlite3中資料匯入到mysql中的實戰教程,sqlite3mysql

前言

sqlite3隻小巧輕便,但是並不支援並發訪問,當網站並發量較大時候,資料庫請求隊列邊長,有可能導致隊列末尾去資料庫操作逾時,從而操作失敗。因此需要切換到支援並發訪問的資料庫。切換資料庫需要將老的資料匯出,再匯入到新的資料庫中,但是sqlite3和mysql的資料庫並不完全相容,需要做部分調整才能正常匯入到mysql中。我最近工作中就遇到了這個問題。

最近一個項目中使用magenetico抓取磁力連結,由於它使用的是sqlite3, 檔案會越來越大,而且不支援分布式;所以需要將其改造成MySQL,在遷移之前需要將已經抓取的15G資料匯入到MySQL,下面來一起看看詳細的介紹吧

方法如下:

從sqlite3檔案dump出sql

sqlite3 database.sqlite3sqlite3> .output /path/to/dump.sqlsqlite3> .dumpsqlite3> .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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的協助,如果有疑問大家可以留言交流,謝謝大家對幫客之家的支援。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.