将SQLite文件转换为MySQL

5

我有一个.sqlite文件,想要将其转换为mysql。有没有什么方法可以将它转换为mysql?我正在使用ubuntu。是否有任何shell脚本可以更改它。非常感谢您的帮助。


1
可能是快速简单的方法将SQLite3迁移到MySQL?的重复问题。 - p.campbell
5个回答

4
  1. 假设您的sqlite数据库文件名为login.db
  2. 下载此脚本并将其命名为sqlite3-to-mysql.sh
  3. 运行以下命令将转换您的sqlite数据库文件为标准的mysql sql文件:sqlite3 login.db .dump > sqlite.sql && bash sqlite3-to-mysql.sh sqlite.sql > mysql.sql && rm sqlite.sql
  4. 将转换后的mysql sql文件导入到mysql中:mysql -u用户名 -p密码 -D 数据库名 < mysql.sql

0

我最近尝试了这个方法,大多数答案都不起作用,因为它们已经过时了。例如:python vs python3

对我有效的一种方法是将表格导出为CSV文件,然后再将其作为CSV文件导入。我使用的是Sequel Pro,它可以导入CSV文件。缺点是您需要逐个处理每个表格。优点是这是一种非常强大的方法,不需要任何自定义脚本。

在数据库文件夹中运行以下命令,将“thedatabase”和“thetable”的两个出现更改为数据库名称和表名称:

sqlite3 -header -csv thedatabase.db "select * from thetable;" > thetable.csv

对于Sequel Pro:

  1. 创建你的数据库
  2. (可选:创建表结构。建议使用正确的列类型) 你可以从sqlite dump中获取create语句并将其修复为mysql。
  3. 文件 > 导入
  4. 格式:CSV
  5. 勾选:“第一行包含字段名”
  6. 检查字段映射并导入

导出命令的解释:

  • "sqlite3"是sqlite数据库的命令行客户端。
  • "-header -csv "将输出设置为csv格式
  • "thedatabase.db"是数据库文件
  • "select * from thetable;"是选择表中所有数据的查询
  • " > thetable.csv"将数据的输出重定向到thetable.csv文件

-3

1) 将sqlite数据库导出为sql文件

sqlite3 sqlite.db .dump > mysql.sql

2) 使用phpMyAdmin或其他工具将mysql.sql文件导入到mysql数据库中。


"sqlite3" 不被识别为内部或外部命令。 - Floris
@Floris 当然你需要先下载并安装它。 - Acuna
SQLite的转储文件与MySQL不是相同的方言。 - Charaf

-3

只需一条命令直接将其导入数据库:

sqlite3 database.db .dump | mysql -uuser -ppassword database

我猜你应该删除“-p”后面的空格。至少在我的机器上,如果“-p”和我的密码之间有空格,它就无法工作,但是没有空格就可以。 - Martin Thoma
干得好,Pipeline总是让它变得容易。 - user7616119
SQLite的转储文件与MySQL不是相同的方言。 - Charaf

-23

在Google搜索“sqlite转mysql”将会给你很多相关的文章...

好吧,最简单的方法是使用sqlite打开.sqlite文件,.dump到一个文件中,这个文件就是包含SQL语句的文本文件。

之后你就可以编辑这个文件并在你的mysql数据库中运行了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接