SQLite 转换为 MySQL 数据库

一、导出 SQLite 数据库

  1. 使用 SQLite 命令行工具

• 打开终端(在 Linux 或 macOS 上)或命令提示符(在 Windows 上)。

• 输入sqlite3 your_database_name.db(将 your_database_name.db 替换为你的 SQLite 数据库文件名)进入 SQLite 命令行界面。

• 使用.mode csv命令将导出模式设置为 CSV(逗号分隔值)格式,这是一种通用的、易于导入 MySQL 的格式。

• 对于每个表,使用.output table_name.csv(table_name 是表名)指定导出的 CSV 文件名,然后使用SELECT * FROM table_name;将表中的数据导出到 CSV 文件中。例如,如果你有一个名为 "users" 的表,可以执行:

.output users.csv

SELECT * FROM users;

• 重复上述步骤,将 SQLite 数据库中的所有表都导出为 CSV 文件。

  1. 使用图形化工具(可选)

• 有一些 SQLite 的图形化管理工具,如 DB Browser for SQLite。

• 打开工具并加载你的 SQLite 数据库。

• 找到导出功能,通常可以将表导出为 CSV 文件,操作过程相对直观。

二、准备 MySQL 环境

  1. 创建新的 MySQL 数据库

• 登录到 MySQL 服务器。如果是在本地,可以使用命令mysql -u username -p(username 是你的 MySQL 用户名),然后输入密码。

• 创建一个新的数据库,例如CREATE DATABASE new_mysql_db;(将 new_mysql_db 替换为你想要的数据库名称)。

  1. 创建表结构

• 分析 SQLite 数据库中的表结构。你可以查看 SQLite 数据库中的 schema,通常可以通过在 SQLite 命令行中使用.schema命令来获取所有表的结构信息。

• 根据 SQLite 的表结构,在 MySQL 中创建相应的表。需要注意的是,SQLite 和 MySQL 的数据类型有一些差异。例如,SQLite 的INTEGER类型在 MySQL 中通常也可以用INT类型来对应,但有些特殊的类型可能需要进行转换。例如,SQLite 的TEXT类型可以对应 MySQL 的TEXT类型。

• 例如,假设在 SQLite 中有一个表结构如下:

CREATE TABLE users (

id INTEGER PRIMARY KEY,

name TEXT,

age INTEGER

);

• 那么在 MySQL 中可以创建类似的表:

CREATE TABLE users (

id INT PRIMARY KEY AUTO_INCREMENT,

name VARCHAR(255),

age INT

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

• 这里需要注意,MySQL 中添加了AUTO_INCREMENT属性来自动增加主键值(类似于 SQLite 的PRIMARY KEY特性),并且指定了存储引擎(如 InnoDB)和字符集(如 utf8mb4)。

三、将数据导入 MySQL

  1. 使用 MySQL 命令行导入 CSV 数据

• 登录到 MySQL 数据库,进入你之前创建的数据库,如USE new_mysql_db;。

• 对于每个 CSV 文件,使用LOAD DATA INFILE命令导入数据。例如,要导入 "users.csv" 文件到 "users" 表中,可以执行:

LOAD DATA INFILE 'C:/path/to/users.csv'

INTO TABLE users

FIELDS TERMINATED BY ','

ENCLOSED BY '"'

LINES TERMINATED BY '\n'

IGNORE 1 ROWS;

• 请将C:/path/to/users.csv替换为实际的 CSV 文件路径。FIELDS TERMINATED BY ','指定了字段之间的分隔符是逗号,ENCLOSED BY '"'指定了字段的值被双引号包围(这是 CSV 文件常见的格式)LINES TERMINATED BY '\n'指定了行的终止符是换行符。IGNORE 1 ROWS用于忽略 CSV 文件的第一行(通常是表头)。

  1. 使用图形化工具导入(可选)

• 许多 MySQL 的图形化管理工具,如 MySQL Workbench,也提供了导入 CSV 数据的功能。

• 你可以通过工具的界面导入选项,选择 CSV 文件和对应的目标表,然后按照向导完成数据导入。

在完成上述步骤后,你的 SQLite 数据库就成功转换为 MySQL 数据库了。不过,在转换过程中,要注意检查数据的完整性和准确性,因为不同数据库系统在某些细节上可能存在差异。

相关推荐
小陈工1 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
0xDevNull5 小时前
MySQL数据冷热分离详解
后端·mysql
科技小花5 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸5 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
D4c-lovetrain5 小时前
linux个人心得22 (mysql)
数据库·mysql
阿里小阿希6 小时前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql
荒川之神6 小时前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
做个文艺程序员6 小时前
MySQL安全加固十大硬核操作
数据库·mysql·安全
不吃香菜学java7 小时前
Redis简单应用
数据库·spring boot·tomcat·maven
一个天蝎座 白勺 程序猿7 小时前
Apache IoTDB(15):IoTDB查询写回(INTO子句)深度解析——从语法到实战的ETL全链路指南
数据库·apache·etl·iotdb