热门标签 | 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数据的导入与导出


推荐阅读
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 在project.properties添加#Projecttarget.targetandroid-19android.library.reference.1..Sliding ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
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社区 版权所有