sqlite数据库如何转成mysql数据库

首先去官网下载一个 Navicat Premium 工具软件,一般也不需要破解,试用就可以了。

这里我使用的版本是Navicat Premium 17

打开本地sqlite文件

文件 -- 新建连接 -- 连接类型选择sqlite (这个版本在左侧勾选也可以) -- 点击下一步 -- 输入连接名称(示例:sqlitedb),选择对应本地sqlite文件,再输入用户名和密码,点击确定按钮(也可以点击测试连接,看看是否连上) -- 完成

在界面左侧“我的连接”列表里面就能看到刚刚添加的SQLite数据库了。

转成 mysql

通过 Navicat Premium 在服务器上创建一个新的数据库。我这里举个例子,数据库名称为test,确定好数据库编码格式,建议选用utf8mb4

选择刚才建立的sqlite连接 sqlitedb ,再点击顶部菜单栏中的工具--数据传输功能,源数据库默认选择了 sqlitedb连接,数据库选择默认的main 。 在文件系统中,建立一个空的文本文件test.sql,用于接收sql脚本。 回到数据传输界面,目标连接选择“文件”,在下方的文本框旁边选择“...”按钮,选择刚创建的文本文件test.sql,sql格式选择服务器数据库对应的版本,我这里是5.7,确认信息后,进行下一步

在右侧数据库对象树形列表中,点击根节点(表)前面的复选框,进行全选。点击下一步

确认相关配置信息无误后,点击“开始”按钮,执行导出。

如果出现错误信息,请根据相应的错误信息进行结构调整,我这里没有出现错误信息。

再在新建的mysql数据库test上执行刚才导出的test.sql脚本文件,将数据结构和数据都导入到数据库。

我这边发现存在错误,因此需要排查问题,在新建的mysql数据库上新建查询,把刚才导出的脚本加载进来,逐一排查错误。

我这出现的报错为

1170 - BLOB/TEXT column 'acode' used in key specification without a key length

因此需要查看acode字段,以及其他的 blob/text字段,在脚本执行过程中是否存在问题

查看脚本发现,大多数类型都为longtext,而且没给长度,我这里采用简单粗暴的方法,将其替换为 varchar(255),再进行执行

执行过程中还可能存在错误,再一一改正

对于出现 1406 - Data too long for column 'xxx' at row 1 可以将类型长度加大,或者改为text/longtext等类型

对于出现1264 - Out of range value for column 'xxx' at row 3 可以采用扩大存储的方式,比如int 不够,则采用bigint

经过上述修改,脚本执行正常。

转换成mysql数据库完成。