什么是mysqldump 以及如何使用它?

2021.07.09 -

   
计算机屏幕上的 mysql_query

作为领先的免费数据库之一,MySQL 是许多 Web 应用程序的流行选择。暴露在互联网上,您的应用程序容易受到恶意攻击。如果您的服务器遭到入侵,您最多需要重新安装应用程序;最坏的情况是,您可能会丢失数据。此外,您可能会遇到需要将数据库从一台服务器迁移到另一台服务器的情况。

mysqldump 有什么用?

mysqldump 工具为您解决了服务器妥协和迁移情况。它的基本功能是将一个 MySQL 数据库作为文本文件转储出来。但不是任何文本文件;该文件是一组 SQL 语句。这些语句在执行时会将数据库重建为执行转储时的精确状态。

使用 mysqldump 创建数据库的导出作为备份,或者在将数据库移动到新主机时。在任何一种情况下,文本文件都将被导入回 MySQL 数据库服务器。它将执行文件中的所有 SQL 语句,从而将数据库重建到其原始状态。这部分不使用 mysqldump 命令,但没有这个实用程序也不可能。

在MySQL的文档列表等方法来进行备份,但这些都有缺点:

  • 从 MySQL Enterprise 热复制数据库是实现这些备份的好方法 — 如果您不介意 Enterprise 的价格标签。
  • 跨操作系统移动时,复制数据库数据目录可能会很棘手,因为目的地会有所不同。
  • 导出到带分隔符的文本文件将为您提供内容,但您必须重新创建结构。
  • 您通常可以从 MySQL Workbench 等 GUI 程序备份数据库。但这是一个手动过程;不是您可以编写脚本或包含在批处理作业中的内容。

安装mysqldump工具

对于Windows,请查看我们在 Windows 7 上安装 MySQL的说明(安装过程与 Windows 10 相同)。在 macOS 上,请参阅我们在 macOS 10.7 上安装 MySQL 的说明(同样,较旧但仍然适用)。用户基于Ubuntu的Linux系统可以使用下面的命令来安装MySQL客户端和实用程序:sudo apt 安装 mysql 客户端

提取 MySQL 转储

安装后,使用 mysqldump 获取数据库的完整备份。mysqldump -h [您的数据库主机名或 IP] -u [数据库用户名] -p [数据库名] > db_backup.sql

以下是此命令中使用的标志的说明:

  • -h:这个标志是数据库主机。它可以是完整的主机名(例如 myhost.domain.com)或 IP 地址。如果您在与 MySQL 服务器相同的主机上运行该命令,请将此留空。
  • -u:您的用户名。
  • -p:如果您正确保护了 MySQL 安装,则需要密码才能连接。当您执行命令时,这个没有参数的标志会提示您输入密码。有时,直接提供密码作为此标志的参数很有用,例如,在备份脚本中。但是在提示符下,您不应该这样做,因为如果有人获得了对您计算机的访问权限,他们可以在命令历史记录中获得此密码。
  • > db_backup.sql:这部分告诉 mysqldump 将其输出定向到一个文件。通常,该命令会将所有内容输出到控制台,这意味着您将在屏幕上看到几个 SQL 语句。> 符号将输出汇集到指定的文本文件中。如果此文件不存在,则会自动创建。

完成后,您将拥有一个 .SQL 文件。这是一个包含 SQL 语句的文本文件。您可以在任何文本编辑器中打开它以检查内容。这是 WordPress 数据库的导出,显示了这些文件是如何组合在一起的。

该文件分为多个部分。第一部分为 WordPress 评论设置表格。第二部分重新创建这些表中的内容(在本例中为评论记录)。当您重新导入 MySQL 转储时,该命令会处理文件、执行语句并按原样重新构建数据库。

导入 MySQL 转储文件

在导入转储文件之前,您需要一个已经创建的数据库及其有效的用户名和密码。您还应该拥有数据库的所有权限。您不需要 GRANT 权限,但将它们全部授予更容易。

在更改数据库中的安全角色之前,了解有关数据库权限的更多信息。

要重新导入数据,请使用mysql命令登录 MySQL 服务器。在提示符下键入use [database name],并替换数据库的名称。输入source [filename],并替换您之前获取的转储文件的名称。

完成后,会出现一个消息列表,指出正在执行 SQL 语句。注意错误,但如果您有正确的权限,应该没问题。

该过程完成后,您将拥有原始数据库的副本。要验证数据库之间的相似性,请执行另一个转储,然后比较两个输出。使用文本编辑器或专用差异工具比较这两个文件。

这些文件之间有两个不同之处,如右侧滚动条顶部和底部的红线所示。第一行是包含数据库名称的行,这是不同的,因为文件的名称不同。第二个是转储文件的时间戳。这是不同的,因为第二个数据库是在第一个数据库之后重新创建的。否则,文件完全相同,这意味着生成它们的数据库也是如此。

本站文章禁止转载,违者必究
阅 70
0

作为领先的免费数据库之一,MySQL 是许多 Web 应用程序的流行选择。暴露在互联网上,您的应用程序容易受到 […]

湘公网安备 43011102001693号

    湘ICP备19003021号 __