中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

SQLITE怎樣遷移到MYSQL

SQLITE怎樣遷移到MySQL,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

10余年的鞏義網站建設經驗,針對設計、前端、開發、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。成都營銷網站建設的優勢是能夠根據用戶設備顯示端的尺寸不同,自動調整鞏義建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現優雅布局與設計,從而大程度地提升瀏覽體驗。創新互聯建站從事“鞏義網站設計”,“鞏義網站推廣”以來,每個客戶項目都認真落實執行。

接同事需求,要求從SQLITE的數據轉到MYSQL,這東西以前也沒接觸過。這里搜搜,那里試試,下面把過程列一下。
主要過程分三步:
1,把SQLITE表結構導出來,作一定的格式調整
2,把SQLITE數據導出來,作特殊字符的處理
3,導出MYSQL(注意字符集)[@more@]

下面是我操作的過程, 有兩個部分:單表操作和批量處理(含腳本)

########### 單表操作 ####################
# 打開SQLITE DB
root> sqlite3 mig.db

# 查看表,可用用".help"獲得幫助
sqlite>.tables

# 導出數據表結構
sqlite>.output /tmp/heyf/createtable.sql
sqlite>.schema accounts_profile  

# 調整建表語句格式, 把雙引號去掉,并加上MYSQL的建表約束。
root>sed 's/"/`/g' createtable.sql > create_onmysql.sql
root>sed -i -e 's/^);$/) engine=innodb default charset=utf8 collate=utf8_bin ;/g' create_onmysql.sql
root>sed -i 's/integer.*PRIMARY KEY/int NOT NULL auto_increment PRIMARY KEY/g'  create_onmysql.sql
    # sqlite中,為 INTEGER PRIMARY KEY 的字段將自動增加
root>sed -i 's/ text/ longtext/g'  create_onmysql.sql
    # sqlite中,text 最大長度為2G, 在MYSQL中需要改成longtext;

# 在MYSQL把表建上:
mysql -uroot -h227.0.0.1 --default-character-set=utf8 test < create_onmysql.sql

# 導出數據
sqlite>.mode insert accounts_profile_starred_review_requests
sqlite>.output /tmp/heyf/accounts_profile_starred_review_requests.sql
sqlite>select * from accounts_profile_starred_review_requests;
sqlite>.output stdout

# 處理特殊字符
DOTABLE=accounts_profile_starred_review_requests
cd /tmp/heyf
DOFILE=${DOTABLE}.sql
sed -e "s///g"   $DOFILE  > ${DOFILE}.new

# 將數據導入MYSQL
mysql -uroot -h227.0.0.1 --default-character-set=utf8 test -e "truncate table ${DOTABLE};"
mysql -uroot -h227.0.0.1 --default-character-set=utf8 test < ${DOFILE}.new





如果表很多:那我們就需要批量處理一下啦,下面是一些批量腳本 :
########### 批量處理 ####################

# 打開SQLITE DB
root> sqlite3 mig.db

# 查看表
sqlite>.tables
  # 把所有表名都放入TABLE.LIST文件

# 導出數據表結構
sqlite>.output /tmp/heyf/createtable.sql
sqlite>.schema accounts_profile  
sqlite>.schema ... ....

#在MYSQL 創建表結構
root>sed 's/"/`/g' createtable.sql > create_onmysql.sql
root>sed -i -e 's/^);$/) engine=innodb default charset=utf8 collate=utf8_bin ;/g' create_onmysql.sql
root>sed -i 's/integer.*PRIMARY KEY/int NOT NULL auto_increment PRIMARY KEY/g'  create_onmysql.sql
    # sqlite中,為 INTEGER PRIMARY KEY 的字段將自動增加
root>sed -i 's/ text/ longtext/g'  create_onmysql.sql
    # sqlite中,text 最大長度為2G, 在MYSQL中需要改成longtext;

root>mysql -uroot -h227.0.0.1 --default-character-set=utf8 test < /tmp/heyf/create_onmysql.sql

# SQLITE 中導出數據
 
## 將所有的表生成導出語句(SQLITE)
## cat   create_exp.sh  
-------------------------
#!/bin/bash
[ $# -ne 1 ] && exit 1
TABFILE=$1
WORKDIR=/tmp/heyf/dmpfile/
OUTFILE=exp.sql
while read LINE
do
 echo $LINE
 echo ".mode insert $LINE" >> $OUTFILE
 echo ".output  $WORKDIR/${LINE}.sql ">> $OUTFILE
 echo "select * from $LINE ;" >> $OUTFILE
 echo ".output stdout "  >> $OUTFILE
done < $TABFILE
-------------------------

## 運行后將產生 sqlite 所有表的導出語句
sh create_exp.sh table.list

## 現在進行SQLITE可以將所有表的數據導出來。
sqlite3 /home/admin/foryunfei/heyf.db
.read /tmp/heyf/exp.sql

# 處理特殊字符
## 現在需要將所有的SQL文件中的""替換成”“,以使SQL能正確執行
## cat   replace.sh  
-------------------------
#!/bin/bash
[ $# -ne 1 ] && exit 1
TABFILE=$1
WORKDIR=/tmp/heyf/dmpfile/
while read DOTABLE
do
 cd $WORKDIR
 DOFILE=${DOTABLE}.sql
 sed -e "s///g"   $DOFILE  > ${DOFILE}.new
done < $TABFILE
-------------------------

## sh replace.sh table.list

## 將數據導入MYSQL
## cat   imp.sh
-------------------------
#!/bin/bash
[ $# -ne 1 ] && exit 1
TABFILE=$1
WORKDIR=/tmp/heyf/dmpfile/
while read DOTABLE
do
 cd $WORKDIR
 mysql -uroot -h227.0.0.1 --default-character-set=utf8 test -e "truncate table ${DOTABLE};"
 mysql -uroot -h227.0.0.1 --default-character-set=utf8 test < ${DOTABLE}.sql.new
done < $TABFILE
-------------------------

## sh imp.sh table.list

看完上述內容,你們掌握SQLITE怎樣遷移到MYSQL的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創新互聯行業資訊頻道,感謝各位的閱讀!

文章名稱:SQLITE怎樣遷移到MYSQL
當前地址:http://www.2m8n56k.cn/article32/ijccpc.html

成都網站建設公司_創新互聯,為您提供搜索引擎優化移動網站建設網站收錄網站設計用戶體驗定制開發

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站制作
主站蜘蛛池模板: 亚洲人成网站色7799在线观看 | 欧美一级专区免费大片俄罗斯 | 91欧美在线视频 | 手机看片精品高清国产日韩 | 欧美性久久久久 | 色咪味成人网 | 天堂免费在线视频 | 男女在线视频 | 996热在线视频| 日韩在线一区二区三区 | 欧美精品v欧洲精品 | 黄色三级在线 | 欧美一级专区免费大片野外交 | 天天综合色一区二区三区 | 韩国免费网站成人 | 成年网站免费 | 欧美日韩精品一区二区 | 精品国语_高清国语自产 | 亚洲第一区精品日韩在线播放 | 国产亚洲视频在线播放大全 | 免费一级欧美大片久久网 | 91福利国产在线观一区二区 | 真正国产乱子伦高清对白 | 欧美一级高清片欧美国产欧美 | 亚洲国产成a人v在线观看 | 欧美成人高清性色生活 | 国产精品久久久久激情影院 | 欧美日韩精品一区二区免费看 | 亚洲美女视频网 | 毛片啪啪视频 | 日本一区午夜爱爱 | 国产在线极品 | 精品欧美日韩一区二区三区 | 亚洲国产成人综合精品2020 | 国产成人综合网亚洲欧美在线 | 在线观看视频中文字幕 | 国内自拍视频一区二区三区 | 日韩一级片免费 | www.xxx.国产| 日本一道免费一区二区三区 | 久久免费视频在线观看30 |