sqlite数据库整体迁移进mysql整个流程并解决中文异常问题

咨询+【QQ】

sqlite轻量数据还行,随着数据量增大,不得不迁移进mysql

首先 电脑执行
 

sqlite3 db.sqlite3 .dump > dump.sql

会把整个sqlite的数据导出进 dump.sql中

紧接着我们把sqlite的sql转换成mysql的sql语句,因为mysql语句和 sqlite的sql有区别,所以我们需要用python实现一个转换脚本

import redef convert_sqlite_to_mysql(sql):# 移除 PRAGMA 语句sql = re.sub(r'PRAGMA .*?;', '', sql)# 修改 BEGIN TRANSACTION 为 START TRANSACTIONsql = sql.replace('BEGIN TRANSACTION;', 'START TRANSACTION;')# 替换 COMMIT TRANSACTION 为 COMMITsql = sql.replace('COMMIT;', 'COMMIT;')# 替换 ROLLBACK TRANSACTION 为 ROLLBACKsql = sql.replace('ROLLBACK;', 'ROLLBACK;')# 修改 AUTOINCREMENT 为 AUTO_INCREMENTsql = sql.replace('AUTOINCREMENT', 'AUTO_INCREMENT')# 替换数据类型sql = sql.replace('INTEGER', 'INT')sql = sql.replace('TEXT', 'VARCHAR(255)')# 替换双引号为反引号sql = sql.replace('"', '`')# 添加 CHARACTER SET utf8mb4 到表定义中sql = re.sub(r'CREATE TABLE `(.*?)` \(', r'CREATE TABLE IF NOT EXISTS `\1` (', sql)# sql = re.sub(r'\);', r') ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;', sql)# 处理 INSERT 语句,确保数据字符集正确sql = re.sub(r'INSERT INTO `(.*?)` \((.*?)\) VALUES', r'INSERT INTO `\1` (\2) VALUES', sql)sql = re.sub(r'INSERT INTO `sqlite_sequence`.*?;', '', sql)return sql# 读取原始的 SQLite dump 文件
with open('dump.sql', 'r', encoding='utf-8') as file:sql_dump = file.read()# 转换为 MySQL 兼容的 SQL
mysql_compatible_sql = convert_sqlite_to_mysql(sql_dump)# 将转换后的 SQL 写入新的文件
with open('dump_mysql.sql', 'w', encoding='utf-8') as file:file.write(mysql_compatible_sql)print("SQL conversion complete. Please check 'dump_mysql.sql' for MySQL import.")

执行py脚本生成dump_mysql.sql

这样就转换好了,紧接着进入mysql创建数据库 mydatabase

CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE mydatabase;

去mysql安装目录,执行。linux直接执行此命令就行

mysql -u root -p mydatabase < dump_mysql.sql#如果遇到中文报错\u等报错,数据导入的时候就需要用一下命令,指定字符集导入进mysqlmysql --default-character-set=utf8mb4 -u root -p mydatabase < dump_mysql.sql

然后输入mysql对应的密码,就行了

等待数据转存完,就行了。可能会报一个  sqlite_sequence 之类的异常,并不影响数据。至此就行了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/30415.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机专业是否仍是“万金油”?

身份角度一&#xff1a;一名曾经的计算机专业学生  随着高考的结束&#xff0c;我站在了人生的分岔路口&#xff0c;面临着大学专业的选择。在众多的选择中&#xff0c;计算机专业一直是我深思熟虑后的一个重要选项。然而&#xff0c;我并不清楚自己是否真的适合这个专业&…

微信小程序学习(五):条件渲染与列表渲染

1、条件渲染 条件渲染主要用来控制页面结构的展示和隐藏&#xff0c;在微信小程序中实现条件渲染有两种方式&#xff1a; 使用 wx:if、wx:elif、wx:else 属性组使用 hidden 属性 <view wx:if"{{num 1}}"> 1 </view> <view wx:elif"{{num 2}…

调取Windows系统虚拟键盘

目录 一 设计原型 二 后台源码 一 设计原型 二 后台源码 using System.Diagnostics;namespace 调取Windows虚拟键盘 {public partial class Form1 : Form{public Form1(){InitializeComponent();}private void richTextBox1_DoubleClick(object sender, EventArgs e){Proces…

Cloudflare API 令牌完整指南:快速掌握查询与创建(手把手教你查询和创建 Cloudflare API 令牌)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 Cloudflare API 令牌 📒📝 查询 Cloudflare API 令牌📝 创建编辑区域 DNS 令牌⚓️ 相关链接 ⚓️📖 介绍 📖 在管理网站和应用程序时,Cloudflare 提供了强大的 API 接口,可以极大地简化各种操作。本文将详细介绍如…

Debian12安装Nvidia官方驱动

1、下载驱动&#xff08;下载到一个英文目录例如你的用户目录/home/用户名下&#xff0c;我下载到dowload目录&#xff0c;由于默认显示中文&#xff0c;在命令行不支持中文显示的是一串数字&#xff0c;当然你仍然可以cd 那串数字进目录&#xff0c;显示有有引号就加引号&…

【宠粉赠书】科技图表绘制:R语言数据可视化

为了回馈粉丝们的厚爱&#xff0c;今天小智给大家送上一套科研绘图的必备书籍——《R语言数据可视化&#xff1a;科技图表绘制》。下面我会详细给大家介绍这套图书&#xff0c;文末留有领取方式。 图书介绍 《R语言数据可视化&#xff1a;科技图表绘制》结合编者多年的数据分析…

PLC模拟量和数字量到底有什么区别?

PLC模拟量和数字量的区别 在工业自动化领域&#xff0c;可编程逻辑控制器&#xff08;PLC&#xff09;是控制各种机械设备和生产过程的核心组件。PLC通过处理模拟量和数字量来实现对工业过程的精确控制。了解模拟量和数字量的区别对于设计高效、可靠的自动化系统至关重要。 1. …

C++之STL(二三)

1、vector源码刨析 1.1、数据结构以及动态扩充算法 其实vector内部有三个指针&#xff0c;分别是数据的第一个元素Myfirst、数据的最后一个元素的下一个位置Mylast&#xff0c;最后一个空间的下一个位置Myend&#xff1b;当你插入数据的时候&#xff0c;先判断当前容量够不够&…

尚品汇项目2

p68 加入产品个数操作 p69 加入购物车

立讯精密:“果链一哥”怎么摆脱依赖症

AI手机创新赋能&#xff0c;隔岸苹果股价走出历史新高&#xff0c;消费电子有望迎来复苏&#xff1f; 这里我们聊聊苹果产业链代工龙头——立讯精密 作为早早入场的代工企业&#xff0c;立讯精密曾经吃足“果链”红利&#xff0c;如今摆在它面前的是增长、毛利、安全等难题。 …

redis字典

字典 字典就是map&#xff0c;一种保存键值对的抽象数据结构 字典里的每个键都是独一无二的&#xff0c;程序就是通过键来查其对应的值 但C语言也没有内置map&#xff0c;因此redis自己构建的字典 在Redis中&#xff0c;哈希键&#xff08;Hash key&#xff09;是一种特殊的…

人工智能—美国加利福尼亚州房价预测实战

引言 在当今快速发展的房地产市场中&#xff0c;房价预测已成为一个至关重要的领域。它不仅关系到投资者的决策&#xff0c;也直接影响到普通购房者的生活质量。特别是在美国加利福尼亚州&#xff0c;这个以其高房价和房地产市场的波动性而闻名的地方&#xff0c;准确的房价预…

TF-IDF、BM25传统算法总结

1. TF-IDF算法 F-IDF&#xff08;词频-逆文档频率&#xff09;是一种用于衡量文本中词语重要性的方法&#xff0c;特别适用于信息检索和文本挖掘任务。下面会拆分为两部分深入讲解TF-IDF的计算过程&#xff0c;以便更好地理解。 TF-IDF的计算过程可以分为两个主要部分&#xf…

【漏洞复现】契约锁电子签章平台 add 远程命令执行漏洞(XVE-2023-23720)

0x01 产品简介 契约锁电子签章平台是上海亘岩网络科技有限公司推出的一套数字签章解决方案。契约锁为中大型组织提供“数字身份、电子签章、印章管控以及数据存证服务”于一体的数字可信基础解决方案,可无缝集成各类系统,让其具有电子化签署的能力,实现组织全程数字化办公。通…

Redis(基础篇)

Redis是一个可基于内存也可持久化的Key-Value数据库也称非关系型&#xff08;NoSQL&#xff09;数据库。 传统关系型数据库是结构化数据&#xff0c;每张表在创建的时候都有严格的约束信息&#xff0c;如字段名、字段数据类型、字段约束等&#xff0c;插入的数据必须遵循这些约…

03 - matlab m_map地学绘图工具基础函数 - 设置坐标系(m_coord)

03 - matlab m_map地学绘图工具基础函数 - 设置坐标系&#xff08;m_coord&#xff09; 0. 引言1. m_proj使用方法2. 结语 0. 引言 上一篇介绍了m_proj函数用于初始化投影&#xff0c;本篇介绍的函数m_coord用于初始化地理坐标系或地磁坐标系&#xff0c;地理/地磁坐标系和投影…

xss一些笔记

&#xff08;乱写的一些笔记&#xff09; innerHTML只防script像是img就不会防 innerText都防 上面代码执行避免用户交互 js也可以用’‘执行 例子 alert’1‘ document.location.hash // #号后的部分&#xff0c;包括#号 document.location.host // 域名…

黑马苍穹外卖4 店铺营业状态设置+Redis基础

店铺营业状态设置 Redis MySQL Java并发 JavaMVC 计算机网络 操作系统 算法&#xff0c;后端面试主要是这些&#xff0c;外加项目 Redis 数据库&#xff0c;基于内存存储的key-value结构。 mysql是磁盘存储&#xff0c;通过二维表存储。 在文件夹目录打开cmd 服务端&#xf…

YOLOv10(6):YOLOv10基于TensorRT的部署(基于INetworkDefinition)

1. 写在前面 我们在前面已经讲过很多关于YOLOv10的一些知识点&#xff0c;也简单理了一下如何训练自己的数据。 现在本篇文章主要是讲解一下如何在TensorRT中部署YOLOv10&#xff0c;相信经过这一步&#xff0c;各位小伙伴已经能够无限的接近于将YOLOv10产品化了。 另一个需要说…

Google Hacking 搜索语法及其功能

目录 ①常见语法及其功能Ⅰ关键词:搜索内容Ⅱ逻辑运算符使用1. AND 运算符2. OR 运算符3. NOT 运算符综合示例 ②综合搜索案例案例 1&#xff1a;查找某网站的登录页面案例 2&#xff1a;查找包含密码的 Excel 文件案例 3&#xff1a;查找某网站的所有 PDF 文件案例 4&#xff…