大岭山镇网站建设公司阿里巴巴做网站难吗
web/
2025/9/27 19:56:39/
文章来源:
大岭山镇网站建设公司,阿里巴巴做网站难吗,福州市住房和城乡建设局网站,做响应式网站图片需要做几版接同事需求#xff0c;要求从SQLITE的数据转到MYSQL#xff0c;这东西以前也没接触过。这里搜搜#xff0c;那里试试#xff0c;下面把过程列一下。主要过程分三步#xff1a;1#xff0c;把SQLITE表结构导出来#xff0c;作一定的格式调整2#xff0c;把SQLITE数据导出…接同事需求要求从SQLITE的数据转到MYSQL这东西以前也没接触过。这里搜搜那里试试下面把过程列一下。主要过程分三步1把SQLITE表结构导出来作一定的格式调整2把SQLITE数据导出来作特殊字符的处理3导出MYSQL(注意字符集)[more]下面是我操作的过程 有两个部分单表操作和批量处理(含脚本)########### 单表操作 ##################### 打开SQLITE DBroot sqlite3 mig.db# 查看表,可用用.help获得帮助sqlite.tables# 导出数据表结构sqlite.output /tmp/heyf/createtable.sqlsqlite.schema accounts_profile# 调整建表语句格式, 把双引号去掉并加上MYSQL的建表约束。rootsed s///g createtable.sql create_onmysql.sqlrootsed -i -e s/^);$/) engineinnodb default charsetutf8 collateutf8_bin ;/g create_onmysql.sqlrootsed -i s/integer.*PRIMARY KEY/int NOT NULL auto_increment PRIMARY KEY/g create_onmysql.sql# sqlite中为 INTEGER PRIMARY KEY 的字段将自动增加rootsed -i s/ text/ longtext/g create_onmysql.sql# sqlite中text 最大长度为2G, 在MYSQL中需要改成longtext;# 在MYSQL把表建上mysql -uroot -h127.0.0.1 --default-character-setutf8 test create_onmysql.sql# 导出数据sqlite.mode insert accounts_profile_starred_review_requestssqlite.output /tmp/heyf/accounts_profile_starred_review_requests.sqlsqliteselect * from accounts_profile_starred_review_requests;sqlite.output stdout# 处理特殊字符DOTABLEaccounts_profile_starred_review_requestscd /tmp/heyfDOFILE${DOTABLE}.sqlsed -e s///g $DOFILE ${DOFILE}.new# 将数据导入MYSQLmysql -uroot -h127.0.0.1 --default-character-setutf8 test -e truncate table ${DOTABLE};mysql -uroot -h127.0.0.1 --default-character-setutf8 test ${DOFILE}.new如果表很多那我们就需要批量处理一下啦下面是一些批量脚本 ########### 批量处理 ##################### 打开SQLITE DBroot sqlite3 mig.db# 查看表sqlite.tables# 把所有表名都放入TABLE.LIST文件# 导出数据表结构sqlite.output /tmp/heyf/createtable.sqlsqlite.schema accounts_profilesqlite.schema ... ....#在MYSQL 创建表结构rootsed s///g createtable.sql create_onmysql.sqlrootsed -i -e s/^);$/) engineinnodb default charsetutf8 collateutf8_bin ;/g create_onmysql.sqlrootsed -i s/integer.*PRIMARY KEY/int NOT NULL auto_increment PRIMARY KEY/g create_onmysql.sql# sqlite中为 INTEGER PRIMARY KEY 的字段将自动增加rootsed -i s/ text/ longtext/g create_onmysql.sql# sqlite中text 最大长度为2G, 在MYSQL中需要改成longtext;rootmysql -uroot -h127.0.0.1 --default-character-setutf8 test /tmp/heyf/create_onmysql.sql# SQLITE 中导出数据## 将所有的表生成导出语句(SQLITE)## cat create_exp.sh-------------------------#!/bin/bash[ $# -ne 1 ] exit 1TABFILE$1WORKDIR/tmp/heyf/dmpfile/OUTFILEexp.sqlwhile read LINEdoecho $LINEecho .mode insert $LINE $OUTFILEecho .output $WORKDIR/${LINE}.sql $OUTFILEecho select * from $LINE ; $OUTFILEecho .output stdout $OUTFILEdone $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 1TABFILE$1WORKDIR/tmp/heyf/dmpfile/while read DOTABLEdocd $WORKDIRDOFILE${DOTABLE}.sqlsed -e s///g $DOFILE ${DOFILE}.newdone $TABFILE-------------------------## sh replace.sh table.list## 将数据导入MYSQL## cat imp.sh-------------------------#!/bin/bash[ $# -ne 1 ] exit 1TABFILE$1WORKDIR/tmp/heyf/dmpfile/while read DOTABLEdocd $WORKDIRmysql -uroot -h127.0.0.1 --default-character-setutf8 test -e truncate table ${DOTABLE};mysql -uroot -h127.0.0.1 --default-character-setutf8 test ${DOTABLE}.sql.newdone $TABFILE-------------------------## sh imp.sh table.list
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81001.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!