mysql8 导入导出工具类,支持windows 和linux

概述

1)导入导出工具类 支持windows 和linux,详见第3部分
2)导入、导出参数在 dbeaver 中应用,详见第4部分
整理原因:

1)中文乱码
--default-character-set=utf8 
2)BLOB 导出后,导入失败
--hex-blob

1、mysql 导出参数

这些参数组合在一起,旨在生成一个完整、高效、可靠的导出文件,适用于备份和迁移数据库。

参数:--skip-lock-tables --routines --add-drop-table --disable-keys --extended-insert --default-character-set=utf8 --hex-blob

1、--skip-lock-tables:
此选项在导出表时不锁定它们。这可以避免在导出过程中阻止其他会话的操作,但可能会导致导出数据的一致性问题,特别是如果表在导出过程中发生了更改。

2、--routines:
导出存储过程和函数。这对于备份数据库中所有的逻辑非常重要。

3、--add-drop-table:
在导出文件中包含 DROP TABLE 语句。这意味着在导入导出文件时,会先删除表,然后再重新创建它们。这对于确保目标数据库中的表结构与源数据库一致非常有用。

4、--disable-keys:
在导出文件中包含 ALTER TABLE ... DISABLE KEYS 和 ALTER TABLE ... ENABLE KEYS 语句。这在导入过程中会暂时禁用并重新启用索引,从而加速导入速度。

5、--extended-insert:
使用扩展插入语句。这意味着多个行的数据会被合并到一个 INSERT 语句中,从而减少导出文件的大小并加快导入速度。

6、--default-character-set=utf8:
指定导出文件的默认字符集为 UTF-8。这可以确保字符数据在导入时不会出现乱码。

7、--hex-blob:
将 BLOB 字段的数据以十六进制格式导出。这对于确保二进制数据在传输和存储过程中不被损坏非常有用。

2、mysql 导入参数

导入参数:
1、--default-character-set=utf8
指定导入过程中使用的默认字符集。例如:--default-character-set=utf8。

下面为非必须
1、--force:
在发生错误时继续执行。这对于导入过程中遇到错误但希望继续导入剩余数据的情况很有用。

2、--verbose:
启用详细模式,会输出更多的导入过程信息。

3、--show-warnings:
显示警告信息。启用此选项可以在导入过程中看到警告。

4、--comments:
保留 SQL 文件中的注释。

5、--ignore-errors:
忽略指定的错误类型。

3、导入、导出工具类

支持windows 和linux

package com.xxx;

import cn.hutool.core.util.StrUtil;
import cn.hutool.system.SystemUtil;

import java.util.HashMap;

public class DatabaseUtil {

  
    /**
     * 获取mysql备份命令
     *
     * @param dbHost
     * @param dbName
     * @param username
     * @param pwd
     * @return
     */
    public static String mysqlBackLinuxCmd(String dbHost, String dbName, String username, String pwd, String saveSqlFile) {
        return String.format("mysqldump --skip-lock-tables --routines" +
                        " --add-drop-table --disable-keys --extended-insert" +
                        " --default-character-set=utf8 --hex-blob" +
                        " -h%s -u%s -p%s -R %s > %s", dbHost,
                username, pwd, dbName, saveSqlFile);
    }

    /**
     * 获取mysql备份命令
     * 切换磁盘需要添加,并奇幻盘符下命令执行
     *
     * @param dbHost
     * @param dbName
     * @param username
     * @param pwd
     * @return
     */
    public static String mysqlBackWindowsCmd(String dbHost, String dbName, String username, String pwd, String saveSqlFile) {
        return String.format("d: && cd D:/Program Files/MySQL/MySQL Server 8.0/bin && .\\mysqldump.exe --skip-lock-tables " +
                        " --routines --add-drop-table --disable-keys --extended-insert --default-character-set=utf8 --hex-blob" +
                        " -h%s -u%s -p%s -R %s > %s", dbHost,
                username, pwd, dbName, saveSqlFile);
    }

    /**
     * 获取mysql备份恢复命令
     *
     * @param dbHost
     * @param dbName
     * @param username
     * @param pwd
     * @return
     */
    public static String mysqlRecoveryWindowsCmd(String dbHost, String dbName, String username, String pwd, String sqlPath) {
        return String.format("d: && cd D:/Program Files/MySQL/MySQL Server 8.0/bin && .\\mysql.exe --default-character-set=utf8 -h%s -u%s -p%s %s < %s", dbHost,
                username, pwd, dbName, sqlPath);
    }


    /**
     * 获取mysql备份恢复命令
     *
     * @param dbHost
     * @param dbName
     * @param username
     * @param pwd
     * @return
     */
    public static String mysqlRecoveryLinuxCmd(String dbHost, String dbName, String username, String pwd, String sqlPath) {
        return String.format("mysql --default-character-set=utf8 -h%s -u%s -p%s %s < %s", dbHost,
                username, pwd, dbName, sqlPath);
    }
}

4、命令在 dbeaver 中 应用

导出:
1、工具导出添加参数 --default-character-set=utf8
2、工具导出勾选如下选项
在这里插入图片描述
导入:
1、工具导入添加参数 --default-character-set=utf8
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DatawhaleAI夏令营2024 Task2

#AI夏令营 #Datawhale #夏令营 赛题解析一、Baseline详解1.1 环境配置1.2 数据处理任务理解2.3 prompt设计2.4 数据抽取 二、完整代码总结 赛题解析 赛事背景 在数字化时代&#xff0c;企业积累了大量对话数据&#xff0c;这些数据不仅是交流记录&#xff0c;还隐藏着宝贵的信…

8.13 矢量图层面要素反转面要素渲染(Inverted polygons Renderer)

前言 本章介绍矢量图层面要素反转面要素(Inverted polygons Renderer)的使用说明&#xff1a;文章中的示例代码均来自开源项目qgis_cpp_api_apps 反转面要素(Inverted polygons Renderer) 反转面要素渲染常用于掩膜数据。 反转面要素(Inverted polygons Renderer)是一种渲染方…

软件测试之接口自动化测试实战(完整版)

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 自从看到阿里云性能测试 PTS 接口测试开启免费公测&#xff0c;就想着跟大家分享交流一下如何实现…

使用笔记之-E语言微信支付支付宝支付源代码

首先下载E语言微信支付&支付宝支付源代码 http://www.htsoft.com.cn/download/E_WeiXin_ZhiFuBao_ZhiFu.rar

编译开源车载Linux操作系统AGL

随着汽车行业的智能化和互联化趋势日益明显&#xff0c;车载系统作为汽车的重要组成部分&#xff0c;其性能和功能也受到了越来越多的关注。Linux作为一款开源的操作系统&#xff0c;具有稳定性高、安全性强、可定制性好等优点&#xff0c;因此成为了车载系统领域的热门选择。 …

黄小米-从田间到餐桌的美味之旅

甘肃黄小米颗粒饱满&#xff0c;色泽金黄&#xff0c;富含多种营养成分&#xff0c;如蛋白质、膳食纤维、维生素和矿物质等。其口感香糯&#xff0c;煮粥时香气扑鼻&#xff0c;米油丰富&#xff0c;味道醇厚。由于甘肃地区独特的地理和气候条件&#xff0c;包括充足的日照、较…

SQL 与 NoSQL 数据库:一场关于灵活性与结构的对话

文章目录 引言SQL 数据库&#xff1a;传统之光定义特征优势缺点 NoSQL 数据库&#xff1a;新时代的弹性定义特征优势缺点 何时选择 NoSQL&#xff1f;场景1&#xff1a;海量数据与高并发场景2&#xff1a;灵活性需求场景3&#xff1a;实时数据分析场景4&#xff1a;分布式系统 …

ZW3D二次开发_CAM_设置参数并输出NC文件

ZW3D可以输出NC文件&#xff0c;代码示例如下&#xff1a; int index;int ret cvxCmInqIndexFromName(CM_OUT, (char*)"NC", &index);//获取参数svxNcSetting ncSet;ret cvxCmGetOutputNCSet(index, &ncSet);//设置参数strcpy_s(ncSet.filename, "C:\…

【上海38℃】酷热之下,AI能否给我降降温?

近日上海的高温冲上热搜&#xff0c;要我就早早躲进机房&#xff0c;聆听嘈杂的轰鸣&#xff0c;穿着皮夹克喝着热可可&#xff0c;看着log——以上都是我的白日梦&#xff0c;哈哈哈^ ^) 不过&#xff0c;服务器和工作站确实“真芯热”&#xff0c;尤其是在高负载下&#xff…

【深度学习】图形模型基础(5):线性回归模型第二部分:单变量线性回归模型

1.引言 在统计学与机器学习的广阔领域中&#xff0c;线性回归作为一种基础而强大的预测技术&#xff0c;其核心在于通过输入变量&#xff08;或称预测器、自变量&#xff09;来估计输出变量&#xff08;响应变量、因变量&#xff09;的连续值。本章聚焦于线性回归的一个基本但…

基于SpringBoot的篮球竞赛预约平台

你好&#xff0c;我是计算机学姐码农小野&#xff01;如果你对篮球竞赛预约平台感兴趣或有相关需求&#xff0c;欢迎私信联系我。 开发语言&#xff1a; Java 数据库&#xff1a; MySQL 技术&#xff1a; SpringBootMySql 工具&#xff1a; MyEclipse、Tomcat 系统展示…

ros2_control diff_drive_controller

系列文章目录 前言 一、轮式移动机器人运动学 本页介绍不同轮式移动机器人的运动学。如需进一步参考&#xff0c;请参阅 Siciliano et.al - Robotics&#xff1a; 建模、规划和控制》和 Kevin M. Lynch and Frank C. Park - Modern Robotics&#xff1a; 机械、规划和控制》。 …

什么是网络抓取|常见用例和问题

你可能听说过数据被称为现代信息社会的新石油。由于线上信息量庞大&#xff0c;能够有效地收集和分析网页数据已经成为企业、研究人员和开发人员的关键技能。这就是网页抓取技术的用武之地。网页抓取&#xff0c;也称为网页数据提取&#xff0c;是一种强大的技术&#xff0c;能…

配置jupyter时出现问题?怎么办?

在自己创建的虚拟环境&#xff08;nmjpytorch&#xff09;安装完jupyter&#xff0c;没有跳转到链接&#xff0c;问题如图&#xff1a; 解决方法&#xff1a; 1、查看自己的tornado版本为5.1.1&#xff0c;坑太高了&#xff0c;降低版本为4.5.3 2、卸载tornado-5.1.1 3、安装t…

哪些场景下可以更好地使用行列视(RCV)报表工具呢?

行列视产品是我们公司自主研发的一套基于HTML5技术的Excel式web生产报表应用系统&#xff0c;这款产品定位于发电企业生产指标的收集、报表制作和指标报表可视化&#xff0c;是国内首套专业化、自助化、智能化的生产指标管理及分析应用平台。功能强大但是却简单易用。 这款产品…

正确使用Pytorch Geometric打开Cora(Planetoid)数据集

文章目录 关于报错&#xff08;"Cannot connect to host"&#xff09;解决方法 关于报错&#xff08;“Cannot connect to host”&#xff09; 我们在使用PyG调用Planetoid数据集的时候&#xff0c;常会碰到如下报错&#xff1a; 解决方法就是手动下载这个数据集。…

电商价格监测:品牌控价的基石

品牌进行控价的前提是要对电商数据进行高效且准确的监测&#xff0c;倘若数据不准确或者覆盖率欠佳&#xff0c;就会致使控价方向出现偏差。力维网络始终秉持的数据驱动服务原则&#xff0c;唯有做好电商价格监测&#xff0c;提供高准确率的低价数据&#xff0c;方能为品牌控价…

Spring解耦合分析和总结

在我们的日常开发中&#xff0c;创建对象的操作随处可见以至于对其十分熟悉的同时又感觉十分繁琐&#xff0c;每次需要对象都需要亲手将其new出来&#xff0c;甚至某些情况下由于坏编程习惯还会造成对象无法被回收&#xff0c;这是相当糟糕的。但更为严重的是&#xff0c;我们一…

【Python】九种数据类型详讲(内含常见常见的字符串函数汇总)

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️Python】 文章目录 前言Number&#xff08;数字&#xff09;整数类型int &#xff08;整型&#xff0c;长整型&#xff09;float&#xff08;浮点型&#xff09;complex&#xff08;复数&#xff09;…

基于 Transformers库的ResNet扩展

构建自定义模型&#xff1a;基于&#x1f917; Transformers库的ResNet扩展 引言 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;&#x1f917; Transformers库已经成为了一个不可或缺的工具&#xff0c;它提供了大量的预训练模型和灵活的API&#xff0c;极大地…