热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL数据的导入与导出

本文针对window操作系统与mysql8.0的版本。1.mysql导出sql文件这里直接使用mysql提供的mysqlpump工具,以下是mysqlpump说明mysqlpump

本文针对window操作系统与mysql8.0的版本。

1.mysql导出sql文件

这里直接使用mysql提供的mysqlpump工具,以下是mysqlpump说明

mysqlpump客户实用程序执行逻辑备份,产生一组能够被执行以再现原始数据库对象定义和表数据的SQL语句。它转储一个或多个MySQL数据库以备份或传输到另一个SQL服务器。

mysqlpump功能包括:

  • 并行处理数据库和数据库中的对象,以加速转储过程

  • 更好地控制要转储的数据库和数据库对象(表,存储程序,用户帐户)

  • 将用户帐户转储为帐户管理语句(CREATE USER, GRANT)而不是作为插入mysql系统数据库

  • 创建压缩输出的能力

  • 进度指标(值是估计值)

  • 对于转储文件重新加载,InnoDB通过在插入行之后添加索引来为表 创建更快的二级索引

mysqlpump至少需要SELECT转储表特权,SHOW VIEW转储视图,TRIGGER转储触发器以及未使用LOCK TABLES该 --single-transaction选项的 特权转储用户定义需要系统数据库SELECT权限mysql某些选项可能需要其他权限,如选项说明中所述。

(1)单个数据库导出

语法:mysqlpump -h [ip] -P [port] -u [user_name] -p[password] db_name [tbl_name1 tbl_name2 ...] > file_path

(2)多个数据库导出

语法:mysqlpump -h [ip] -P [port] -u [user_name] -p[password] --databases db_name1 db_name2 ... > file_path

mysqlpump功能很强大还支持多种选项,具体选项可以查看官方文档

(3)将数据从一个MySQL服务器复制到另一个MySQL服务器

语法:mysqldump -h [ip] -P [port] -u [user_name] -p[password] --opt db_name | mysql -h [ip] -P [port] -u [user_name] -p[password] --compress db_name

--opt:默认情况下启用此选项 它提供快速转储操作并生成转储文件,可以快速重新加载到MySQL服务器。 --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset是组合的简写。

--compress:压缩客户端和服务器之间发送的所有信息(如果可能)。从MySQL 8.0.18开始,不推荐使用此选项。它将在未来的MySQL版本中删除。

 

2.mysql执行sql文件

进入mysql客户端执行:source file_path 或 \file_path命令。

 

3.mysql导入批量数据

LOAD DATA完整语法:

技术图片

LOW_PRIORITY:如果使用LOW_PRIORITY修饰符,则LOAD DATA 语句的执行将延迟,直到没有其他客户端从表中读取。这会影响只使用表级锁只存储引擎(例如MyISAM, MEMORYMERGE)。

 

CONCURRENT:如果使用满足并发插入条件CONCURRENTMyISAM指定修饰符 (即,它在中间不包含空闲块),则其他线程可以在LOAD DATA执行时从表中检索数据 LOAD DATA即使没有其他线程同时使用该表,此修饰符也会影响的性能

 

LOCAL:如果LOCAL指定,则文件由客户端主机上的客户端程序读取并发送到服务器。该文件可以作为完整路径名提供,以指定其确切位置。如果以相对路径名的形式给出,则相对于启动客户端程序的目录解释名称。

如果LOCAL未指定,则文件必须位于服务器主机上,并由服务器直接读取。LOCAL加载操作读取位于服务器上的文本文件。出于安全原因,此类操作要求您拥有该FILE 权限。此外,非LOCAL加载操作受 secure_file_priv系统变量设置的限制。如果变量值是非空目录名,则要加载的文件必须位于该目录中。如果变量值为空(这是不安全的),则文件只需要服务器可读。

 

file_name:文件路径,在Windows上,将路径名中的反斜杠指定为正斜杠或加倍反斜杠。

 

REPLACEIGNORE 输入行的修饰处理控制复制唯一键值的现有行:

  • 如果指定REPLACE,则输入行将替换现有行。换句话说,主键或唯一索引的值与现有行的值相同。

  • 如果指定IGNORE,则会丢弃复制唯一键值上现有行的行。

  • 如果未指定任何修饰符,则行为取决于是否LOCAL指定修饰符。如果没有LOCAL,则在找到重复键值时会发生错误,并忽略文本文件的其余部分。使用时LOCAL,默认行为与IGNORE 指定的相同这是因为服务器无法在操作过程中停止传输文件。

PARTITION:LOAD DATA支持显式分区选择,使用PARTITION 带有一个或多个以逗号分隔的分区,子分区或两者的名称列表的选项。使用此选项时,如果文件中的任何行无法插入列表中指定的任何分区或子分区,则语句将失败,并显示错误“ 找到与给定分区集不匹配的行”。有关更多信息和示例。对于使用使用表锁的存储引擎的分区表,例如MyISAM, LOAD DATA无法修剪任何分区锁。这不适用于使用采用行级锁定的存储引擎的表,例如 InnoDB

CHARACTER SET:服务器使用character_set_database系统变量指示的字符集 来解释文件中的信息。 SET NAMES并且设置 character_set_client不影响输入的解释。如果输入文件的内容使用的字符集与默认值不同,通常最好使用该CHARACTER SET子句指定文件的字符集

FIELDS:如果指定FIELDS子句,则每个子句(TERMINATED BY, [OPTIONALLY] ENCLOSED BY和 ESCAPED BY)也是可选的,但必须至少指定其中一个子句允许这些子句的参数仅包含ASCII字符。

  TERMINATED BY:字段与字段之间的分隔符。

  ENCLOSED BY:包裹字段的字符,仅用于从具有字符串数据类型。

  ESCAPED BY:控制如何读取或写入特殊字符,即描述的转义字符。

LINES:

  STARTING BY:如果所有输入行都有一个您想要忽略的公共前缀,则可以使用跳过前缀和前面的任何内容如果一行不包含前缀,则跳过整行。

  TERMINATED BY:每行与每行之间的分隔符。

IGNORE number:该选项可用于忽略文件开头的行.

col_name_or_user_var:默认情况下,如果在LOAD DATA语句末尾没有提供列列表 ,则输入行应包含每个表列的字段。如果只想加载某些表的列,请指定列列表。

SET子句:每个col_name_or_user_var值都是列名或用户变量。使用用户变量,该SET子句使您可以在将结果分配给列之前对其值执行预处理转换。

4.mysql导出批量数据

语法:SELECT [col_name [,col_name] ...] INTO OUTFILE ‘file_path‘ [CHARACTER SET charset_name] 

    [{FIELDS | COLUMNS}

      [TERMINATED BY string]

      [[OPTIONALLY] ENCLOSED BY char]

      [ESCAPED BY char]

    ]

    [LINES

      [STARTING BY string]

      [TERMINATED BY string]

    ]

     FROM table_name;

SELECT ... INTO OUTFILE语句主要用于让您快速将表转储到服务器计算机上的文本文件中。如果要在服务器主机之外的其他主机上创建生成的文件,通常无法使用, SELECT ... INTO OUTFILE因为无法相对于服务器主机的文件系统写入文件的路径。

但是,如果MySQL客户端软件安装在远程计算机上,则可以使用客户端命令(例如 在客户端主机上生成文件)。 mysql -e "SELECT ..." > file_name

如果可以使用服务器文件系统上的网络映射路径访问远程主机上文件的位置,则还可以在服务器主机以外的其他主机上创建生成的文件。在这种情况下,目标主机上不需要存在 mysql(或其他一些MySQL客户端程序)。

SELECT ... INTO OUTFILE是补充LOAD DATA列值将写入转换为CHARACTER SET 子句中指定的字符集如果不存在此类子句,则使用binary字符集转储值实际上,没有字符集转换。如果结果集包含多个字符集中的列,则输出数据文件也将如此,您可能无法正确重新加载文件。

MySQL数据的导入与导出


推荐阅读
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
author-avatar
葉_沛峰
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有