navicat 迁移mysql数据库到sqlite中,生成xxx.db文件

1,449 阅读2分钟

遇到的问题的场景,我们数据进行提取后,将数据存储到了mysql中,使用navicat将数据导出,MySQL导出的sql语句并不能直接迁移到sqlite的数据库中,存在下面的两个问题

  • 第一个问题:在mysql生成的sql文件中,存在着大量转义的文本符号,在导入sqlite的时候报错
  • 第二个问题:mysql的分隔符是"",sqlite的分隔符是'',我们的MySQL形成的sql文件中。存在字段被''包裹的现象,这样在插入到sqlite会因为分隔而报错,无法完成导入 解决方案:使用navicat的数据传输功能,直接在底层将mysql中的数据转化成sqlite的db文件,直接完成迁移

本机(windows系统)安装sqlite数据库。

  • 下载地址为(www.sqlite.org/download.ht… Binaries for Windows选项中,选择下载(sqlite-tools-win32-x86-3220000.zip),解压之后会有三个文件(sqldiff.exe, sqlite3.exe, sqlite2_analyzer.exe),把这三个文件放到一个文件夹中,比如sqlite,然后把这个文件夹的全路径(E:\sqlite)添加到系统环境变量path中。重启cmd,输入sqlite3,会有提示SQLite version等等的提示,表示安装成功;\

创建准备装载数据的sqlite数据库(xxx.db)。

  • 创建一个文件夹mySqlite,在此文件夹中运行cmd,输入命令'sqlite3 test.db'回车,然后输入'.database,就会自动创建一个数据库(test.db);

使用navicat连接sqlite数据库。

  • 点击‘连接’,选中sqlite,连接名填写test.db,选择‘现有数据库文件’,选中数据库(test.db)的路径,连接测试。

使用navicat传输数据到test.db中(迁移的核心)。

  • 用navicat连接mysql数据库,选中需要转移的数据库,右键选择“数据传输”(或者在工具-->数据传输)。‘常规’选项中的‘源’,就是准备转移的数据源mysql。‘目标’就是sqlite数据库,选中test.db,选中一个数据库(main),然后点击开始传输。

image.png

image.png

image.png

  • 点击开始

image.png

在看sqlite数据库,我们发现数据已经导入完成

image.png

test.db的文件可以在ios、android或者其他 使用sqlite的设备中使用。
举一反三:对于其他的数据库,例如:oracle,db,都可以使用这样的方法进行数据库转换。