成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

SQLITE怎樣遷移到MYSQL

SQLITE怎樣遷移到MySQL,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

10余年的鞏義網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都營(yíng)銷網(wǎng)站建設(shè)的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整鞏義建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“鞏義網(wǎng)站設(shè)計(jì)”,“鞏義網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

接同事需求,要求從SQLITE的數(shù)據(jù)轉(zhuǎn)到MYSQL,這東西以前也沒(méi)接觸過(guò)。這里搜搜,那里試試,下面把過(guò)程列一下。
主要過(guò)程分三步:
1,把SQLITE表結(jié)構(gòu)導(dǎo)出來(lái),作一定的格式調(diào)整
2,把SQLITE數(shù)據(jù)導(dǎo)出來(lái),作特殊字符的處理
3,導(dǎo)出MYSQL(注意字符集)[@more@]

下面是我操作的過(guò)程, 有兩個(gè)部分:?jiǎn)伪聿僮骱团刻幚恚ê_本)

########### 單表操作 ####################
# 打開(kāi)SQLITE DB
root> sqlite3 mig.db

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

# 導(dǎo)出數(shù)據(jù)表結(jié)構(gòu)
sqlite>.output /tmp/heyf/createtable.sql
sqlite>.schema accounts_profile  

# 調(diào)整建表語(yǔ)句格式, 把雙引號(hào)去掉,并加上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 的字段將自動(dòng)增加
root>sed -i 's/ text/ longtext/g'  create_onmysql.sql
    # sqlite中,text 最大長(zhǎng)度為2G, 在MYSQL中需要改成longtext;

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

# 導(dǎo)出數(shù)據(jù)
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

# 將數(shù)據(jù)導(dǎo)入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





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

# 打開(kāi)SQLITE DB
root> sqlite3 mig.db

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

# 導(dǎo)出數(shù)據(jù)表結(jié)構(gòu)
sqlite>.output /tmp/heyf/createtable.sql
sqlite>.schema accounts_profile  
sqlite>.schema ... ....

#在MYSQL 創(chuàng)建表結(jié)構(gòu)
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 的字段將自動(dòng)增加
root>sed -i 's/ text/ longtext/g'  create_onmysql.sql
    # sqlite中,text 最大長(zhǎng)度為2G, 在MYSQL中需要改成longtext;

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

# SQLITE 中導(dǎo)出數(shù)據(jù)
 
## 將所有的表生成導(dǎo)出語(yǔ)句(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
-------------------------

## 運(yùn)行后將產(chǎn)生 sqlite 所有表的導(dǎo)出語(yǔ)句
sh create_exp.sh table.list

## 現(xiàn)在進(jìn)行SQLITE可以將所有表的數(shù)據(jù)導(dǎo)出來(lái)。
sqlite3 /home/admin/foryunfei/heyf.db
.read /tmp/heyf/exp.sql

# 處理特殊字符
## 現(xiàn)在需要將所有的SQL文件中的""替換成”“,以使SQL能正確執(zhí)行
## 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

## 將數(shù)據(jù)導(dǎo)入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

看完上述內(nèi)容,你們掌握SQLITE怎樣遷移到MYSQL的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

文章名稱:SQLITE怎樣遷移到MYSQL
當(dāng)前地址:http://jinyejixie.com/article32/ijccpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、移動(dòng)網(wǎng)站建設(shè)網(wǎng)站收錄、網(wǎng)站設(shè)計(jì)、用戶體驗(yàn)、定制開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
台安县| 双牌县| 罗田县| 曲周县| 兴海县| 桐柏县| 密云县| 梁平县| 西乡县| 常山县| 宣城市| 海南省| 平顺县| 南江县| 淮滨县| 高阳县| 海宁市| 邓州市| 上饶市| 彭泽县| 闽清县| 香港 | 东兰县| 通化市| 金山区| 奉新县| 南投县| 遂川县| 康定县| 靖安县| 惠来县| 吴江市| 淮北市| 莎车县| 大兴区| 务川| 中阳县| 化德县| 宁波市| 济宁市| 旬邑县|