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


推荐阅读
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
  • 作为软件工程专业的学生,我深知课堂上教师讲解速度之快,很多时候需要课后自行消化和巩固。因此,撰写这篇Java Web开发入门教程,旨在帮助初学者更好地理解和掌握基础知识。通过详细记录学习过程,希望能为更多像我一样在基础方面还有待提升的学员提供有益的参考。 ... [详细]
  • 在 CentOS 6.5 系统上部署 VNC 服务器的详细步骤与配置指南
    在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ... [详细]
  • 初探性能优化:入门指南与实践技巧
    在编程领域,常有“尚未精通编码便急于优化”的声音。为了从性能优化的角度提升代码质量,本文将带领读者初步探索性能优化的基本概念与实践技巧。即使程序看似运行良好,数据处理效率仍有待提高,通过系统学习性能优化,能够帮助开发者编写更加高效、稳定的代码。文章不仅介绍了性能优化的基础知识,还提供了实用的调优方法和工具,帮助读者在实际项目中应用这些技术。 ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • 本文详细介绍了使用 Python 进行 MySQL 和 Redis 数据库操作的实战技巧。首先,针对 MySQL 数据库,通过 `pymysql` 模块展示了如何连接和操作数据库,包括建立连接、执行查询和更新等常见操作。接着,文章深入探讨了 Redis 的基本命令和高级功能,如键值存储、列表操作和事务处理。此外,还提供了多个实际案例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • iOS 设备唯一标识获取的高效解决方案与实践
    在iOS 7中,苹果公司再次禁止了对MAC地址的访问,使得开发者无法直接获取设备的物理地址。为了在开发过程中实现设备的唯一标识,苹果推荐使用Keychain服务来存储和管理唯一的标识符。此外,还可以结合其他技术手段,如UUID和广告标识符(IDFA),以确保设备的唯一性和安全性。这些方法不仅能够满足应用的需求,还能保护用户的隐私。 ... [详细]
  • 本文深入解析了Java面向对象编程的核心概念及其应用,重点探讨了面向对象的三大特性:封装、继承和多态。封装确保了数据的安全性和代码的可维护性;继承支持代码的重用和扩展;多态则增强了程序的灵活性和可扩展性。通过具体示例,文章详细阐述了这些特性在实际开发中的应用和优势。 ... [详细]
  • 单链表的高效遍历及性能优化策略
    本文探讨了单链表的高效遍历方法及其性能优化策略。在单链表的数据结构中,插入操作的时间复杂度为O(n),而遍历操作的时间复杂度为O(n^2)。通过在 `LinkList.h` 和 `main.cpp` 文件中对单链表进行封装,我们实现了创建和销毁功能的优化,提高了单链表的使用效率。此外,文章还介绍了几种常见的优化技术,如缓存节点指针和批量处理,以进一步提升遍历性能。 ... [详细]
  • 如何高效地安装并配置 PostgreSQL 数据库系统?本文将详细介绍从下载到安装、配置环境变量、初始化数据库、以及优化性能的全过程,帮助读者快速掌握 PostgreSQL 的核心操作与最佳实践。文章还涵盖了常见问题的解决方案,确保用户在部署过程中能够顺利解决遇到的各种挑战。 ... [详细]
  • C# .NET 4.1 版本大型信息化系统集成平台中的主从表事务处理标准示例
    在C# .NET 4.1版本的大型信息化系统集成平台中,本文详细介绍了主从表事务处理的标准示例。通过确保所有操作要么全部成功,要么全部失败,实现主表和关联子表的同步插入。主表插入时会返回当前生成的主键,该主键随后用于子表插入时的关联。以下是一个示例代码片段,展示了如何在一个数据库事务中同时添加角色和相关用户。 ... [详细]
  • DRF框架中Serializer反序列化验证机制详解:深入探讨Validators的应用与优化
    在DRF框架的反序列化验证机制中,除了基本的字段类型和长度校验外,还常常需要进行更为复杂的条件限制校验。通过引入`validators`模块,可以实现自定义校验逻辑,如唯一字段校验等。本文将详细探讨`validators`的使用方法及其优化策略,帮助开发者更好地理解和应用这一重要功能。 ... [详细]
  • 如何高效利用Hackbar插件提升网页调试效率
    通过合理利用Hackbar插件,可以显著提升网页调试的效率。本文介绍了如何获取并使用未包含收费功能的2.1.3版本,以确保在不升级到最新2.2.2版本的情况下,依然能够高效进行网页调试。此外,文章还提供了详细的使用技巧和常见问题解决方案,帮助开发者更好地掌握这一工具。 ... [详细]
  • 并发编程入门:初探多任务处理技术
    并发编程入门:探索多任务处理技术并发编程是指在单个处理器上高效地管理多个任务的执行过程。其核心在于通过合理分配和协调任务,提高系统的整体性能。主要应用场景包括:1) 将复杂任务分解为多个子任务,并分配给不同的线程,实现并行处理;2) 通过同步机制确保线程间协调一致,避免资源竞争和数据不一致问题。此外,理解并发编程还涉及锁机制、线程池和异步编程等关键技术。 ... [详细]
  • 本文详细探讨了在ASP.NET环境中通过加密数据库连接字符串来提升数据安全性的方法。加密技术不仅能够有效防止敏感信息泄露,还能增强应用程序的整体安全性。文中介绍了多种加密手段及其实施步骤,帮助开发者在日常开发过程中更好地保护数据库连接信息,确保数据传输的安全可靠。 ... [详细]
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社区 版权所有