记一次mysql转sqlite过程遇到的2个问题及解决方法

在做网站开发过程中,遇到空间不带mysql数据库,但是支持运行php环境的情况,想到的解决办法是把mysql数据库文件转换成sqlite数据库即可。

网上搜索mysql转sqlite的软件,发现MysqlToSqlite_v2.5可以解决这个问题,但是在网上下载的都是试用版本,有的功能做了些限制,比如在转的过程中,发现他一次最多只能转20张数据表,这个的解决办法是分批次转就可以了,操作步骤如下:

1、首先在本地部署一个可以运行mysql的环境,比如wamp,然后使用软件Navicat链接到mysql数据库,把待导入的mysql数据库文件导入到一个数据库

2、 使用MysqlToSqlite_v2.5,输入对应的账号链接上后,右键选择“Tables To Tables”,然后在选择表的时候,一次性选择20个导入就没问题,导入成功后,把已经导入成功的mysql表删除,然后用同样的方法导入其他剩余的数据表,直到把所有的数据表都导入完整。

使用MysqlToSqlite_v2.5把MySQL转成SqlLite

但是在转换的过程中,遇到了另外个问题,如果一个表数据量太大,则只能最多转换1000条数据,超过1000条的数据没法正常导入,比如我那张表一共4万多条数据,那么如何把带有大量的数据表导入到sqlite呢?这时需要用到另外个工具,sqlite3,这个工具可以在几秒内导入几万条数据,下面说下使用方法:

3、先通过一定方法比如还是上面说的方法导入一张空表到sqlite或者直接在sqlite里面新建一个要导入数据的表;然后利用navicat的“导出向导”把要导出的数据表里的数据导出为txt文件,注意导出时不要选中“包含列的标题”以及选择“逗号(,)”作为栏位分割符

利用navcat把数据导出为txt格式

4、把要导入的文件以及sqlite数据库放到和sqlite3同一个目录,导入数据的操作如下:

 sqlite> .open phpsqlite.db   #打开数据库
 sqlite> .database    #用于验证:显示目前连接的数据库路径
 main: C:\Users\86180\Desktop\sqlite3\phpsqlite.db
 sqlite> .table    #用于验证:显示这个数据库有哪些表格
 tableA
 sqlite> .separator ","  #指定分隔符为","
 sqlite> .import importdata.txt tableA   # .import FileName TableName

一般2秒中即可完成数据的导入了,下面附上使用到的软件的下载地址:

参考:《如何高效地向SQLite导入大量数据》

相关推荐