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

news2024/11/27 16:48:17

概述

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
在这里插入图片描述

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

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

相关文章

利用git将Qt代码托管到U盘或者网盘

文章目录 1.前言2.解决方案3.操作步骤3.1.软件安装3.2.在U盘创建裸仓库3.3.创建Qt程序并将代码上传至U盘3.4.版本标记及切换3.4.在别的电脑上clone代码出来 4.其他5.结语 1.前言 我们在开发项目时&#xff0c;随着项目需求的增加以及bug的修复&#xff0c;肯定会涉及到版本管理…

2024年中国安防CIS市场现状及主要竞争企业分析

2024年中国安防CIS市场现状及主要竞争企业分析 CIS又名CMOS图像传感器&#xff0c;属于一种光学传感器&#xff0c;将光信号转换为电信号并通过读出电路转为数字化信号&#xff0c;是摄像头模组的核心元器件&#xff0c;可以用于手机、汽车、电脑、安防、消费等领域。不同应用领…

Pyqt5中的按钮在播放后出现大小变化应该怎么做

有的时候开发的Pyqt5程序总是会在预览后发现按钮的大小和设计的不一样大&#xff0c;主要原因就是因为按钮的“水平策略”和“垂直策略”的设置导致的&#xff0c;具体如下&#xff1a; 设置为fixed&#xff0c;就是固定的&#xff0c;不要设置为其他的。 fixed的功能如下 部…

短信验证码实现

一、设置AccessKey 创建用户并配置使用权限&#xff0c;使我们拥有调用 aliyunAPI 的权限&#xff0c;之后会生成 AccessKeyID 和 AccessKey密码&#xff0c;后面我们会使用到。需要注意的是 AccessKeyID 和 AccessKey密码生成后我们需要将他保存起来&#xff0c;否则后期无法查…

网站UI:我只负责漂亮,实现的事情交给前端开发。

网页UI的美观性对于用户体验和网站的成功至关重要&#xff0c;以下是几个原因&#xff1a; 吸引用户&#xff1a;美观的网页UI可以吸引用户的注意力&#xff0c;使用户对网站产生兴趣并留下深刻印象。用户更有可能在美观的界面上停留更长时间&#xff0c;探索网站的功能和内容…

默安逐日实验室:XDP的应用实践

1. 网络数据包是如何进入进计算机的 众所周知&#xff0c;网络数据包通常需要在TCP/IP协议栈中进行处理&#xff0c;但网络数据包并不直接进入TCP/IP协议栈&#xff1b;相反&#xff0c;他们直接进入网络接口。因此&#xff0c;在数据包进入 TCP/IP 堆栈之前&#xff0c;它们已…

【计算智能】遗传算法(二):基本遗传算法在优化问题中的应用【实验】

前言 本系列文章架构概览&#xff1a; 本文将介绍基本遗传算法在解决优化问题中的应用,通过实验展示其基本原理和实现过程&#xff1a;选取一个简单的二次函数作为优化目标&#xff0c;并利用基本遗传算法寻找其在指定范围内的最大值。 2. 基本遗传算法&#xff08;SGA&#x…

柯桥小语种学校成人生活口语学习|西班牙语中H为什么不发音…

01 H en el alfabeto espaol 西语字母表中的h 字母H是唯一一个在标准西班牙语中不再代表任何音素的字母。尽管在它单独出现时被叫做HACHE&#xff0c;但在大多数单词拼写中&#xff0c;它只是一个没有声音对应关系的字母&#xff0c;因此RAE称其为“无声的H”&#xff08;hac…

如何正确安装与维护电化学一氧化碳传感器?专业指南

电化学一氧化碳传感器是一种用于检测空气中一氧化碳&#xff08;CO&#xff09;浓度的设备&#xff0c;它基于电化学原理运作。这类传感器的核心组成部分包括电极、电解质和透气膜&#xff0c;它们共同构成一个微型的电化学电池。 电化学一氧化碳传感器的特点包括&#xff1a;…

滑动窗口练习3-最大连续1的个数(三)

题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 给定一个二进制数组 nums 和一个整数 k&#xff0c;如果可以翻转最多 k 个 0 &#xff0c;则返回 数组中连续 1 的最大个数 。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,1,0,0,0,1…

平面设计考试题

考试题 缺省页作用&#xff1a;缓减缺省页带来的负面情绪&#xff0c;增加s用户与产品的粘度&#xff0c;提升产品的用户体验 网站基本类型 c端b端 c端 面向用户和消费者的 门户站 产品网站 企业网站 电商网站 专题页面 游戏网站 视频网站 h5移动端 四大门户网站:新浪&…

【Android源码】Gerrit上传Android源码

关于Gerrit的安装参考下面链接 【Android源码】Gerrit安装 要实现上传Android源码&#xff0c;需要经历以下几步&#xff1a; 下载Android代码创建源码仓库创建manifests仓库上传源码其他电脑下载源码 要证明Gerrit中的源码真实可用&#xff0c;肯定是以其他人能真正共享到代…

idea中maven全局配置

配置了就不需要每次创建项目都来设置maven仓库了。 1.先把项目全关了 2. 进入全局设置 3.设置maven的仓库就可以了

绝地求生PUBG都准备了但是一直不匹配怎么办

绝地求生PUBG&#xff0c;作为一款备受玩家喜爱的射击游戏&#xff0c;以其真实的战斗体验和策略性决策而著称。玩家们在游戏中需要熟悉地图、选择适合的装备和战斗方式&#xff0c;并与队友进行默契的团队合作&#xff0c;才能在战场上取得优势。最近很多玩家都开始下载游玩绝…

RedHat9 | kickstart无人值守批量安装

一、知识补充 kickstart Kickstart是一种用于Linux系统安装的自动化工具&#xff0c;它通过一个名为ks.cfg的配置文件来定义Linux安装过程中的各种参数和设置。 kickstart的工作原理 Kickstart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数&#xff0c;…

昇思25天学习打卡营第17天|ChatGLM-6B聊天demo

一、简介&#xff1a; 本次实验&#xff0c;基于MindNLP和ChatGLM6B模型搭建一个小的聊天应用&#xff0c;ChatGLM6B 是基于 GLM-4 模型开发的开源对话机器人&#xff0c;拥有 62 亿个参数&#xff0c;能够进行自然流畅的语言交流。在对话中&#xff0c;ChatGLM6B 可以胜任文案…

实现原理:远程过程调用(RPC)

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

破解在制品管理不透明难题

在快节奏的现代工业浪潮中&#xff0c;每一个细微的管理环节都直接关系到企业的竞争力与盈利能力。在车间生产中&#xff0c;在制品管理流程不透明是一个常见问题&#xff0c;它可能导致生产效率低下、成本增加、库存积压以及沟通障碍等负面影响。 在制品管理流程不透明&#x…

人员定位技术的行业应用,你有没有了解过?

在之前的文章中&#xff0c;新锐科创为大家讲述了&#xff0c;将人员定位技术实际应用于工厂人员定位的效果&#xff0c;大家感觉是不是有点新颖&#xff0c;那么&#xff0c;你又是否清楚人员定位技术的行业应用呢&#xff1f;如果你从来都没有了解过&#xff0c;建议看看本篇…

【EFK】efk 8收集docker容器日志测试

前言 目前&#xff0c;efk 全家桶已经更新到版本8 了&#xff0c;本章节我们使用8版本的elk搭建日志收集系统&#xff0c;了解它的配置运行过程&#xff0c;方便以后在更复杂的环境中更好的使用。 版本默认就是8最新的&#xff0c;也可以自己指定其他8的版本 elasticsearch: …