介绍
在软件开发中,导入和导出数据库是一项常见任务。您可以使用数据转储来备份和恢复信息。您还可以使用它们将数据迁移到新的服务器或开发环境。
在本教程中,您将使用 MySQL 或 MariaDB 中的数据库转储(命令是可以互换的)。具体来说,您将导出一个数据库,然后从转储文件中导入该数据库。
先决条件
要导入或导出 MySQL 或 MariaDB 数据库,您将需要:
- 一个带有非根 sudo 用户的虚拟机。如果您需要服务器,请转到此处创建运行您喜欢的 Linux 发行版的 DigitalOcean Droplet。创建后,从此列表中选择您的发行版,并按照我们的初始服务器设置指南进行操作。
- 已安装 MySQL 或 MariaDB。要安装 MySQL,请按照我们的教程《如何安装 MySQL》进行操作。要安装 MariaDB,请按照我们的教程《如何安装 MariaDB》进行操作。
- 在您的数据库服务器中创建了一个示例数据库。要创建一个,请按照我们的教程《MySQL 查询入门》中的**“创建示例数据库”**进行操作。
步骤 1 — 导出 MySQL 或 MariaDB 数据库
mysqldump
控制台实用程序将数据库导出到 SQL 文本文件中。这样可以更轻松地传输和移动数据库。您将需要您的数据库名称和一个帐户的凭据,该帐户的权限允许对数据库进行至少完全只读访问。
使用 mysqldump
导出您的数据库:
mysqldump -u 用户名 -p 数据库名称 > 数据转储.sql
用户名
是您可以使用登录到数据库的用户名数据库名称
是要导出的数据库的名称数据转储.sql
是存储输出的当前目录中的文件。
该命令不会产生任何可视输出,但您可以检查 数据转储.sql
的内容,以检查它是否是合法的 SQL 转储文件。
运行以下命令:
head -n 5 数据转储.sql
文件顶部应该类似于这样,显示了名为 数据库名称
的数据库的 MySQL 转储。
[secondary_label SQL dump fragment] -- MySQL dump 10.13 Distrib 5.7.16, for Linux (x86_64) -- -- Host: localhost Database: database_name -- ------------------------------------------------------ -- Server version 5.7.16-0ubuntu0.16.04.1
如果在导出过程中出现任何错误,mysqldump
将将它们打印到屏幕上。
步骤 2 — 导入 MySQL 或 MariaDB 数据库
要将现有的转储文件导入到 MySQL 或 MariaDB 中,您将需要创建一个新数据库。该数据库将保存导入的数据。
首先,以 root 或具有足够权限创建新数据库的其他用户身份登录到 MySQL:
mysql -u root -p
此命令将带您进入 MySQL shell 提示符。接下来,使用以下命令创建一个新数据库。在此示例中,新数据库称为 new_database
:
CREATE DATABASE new_database;
您将看到此输出,确认数据库已创建。
Query OK, 1 row affected (0.00 sec)
然后按 CTRL+D
退出 MySQL shell。从常规命令行,您可以使用以下命令导入转储文件:
mysql -u 用户名 -p new_database < 数据转储.sql
用户名
是您可以使用登录到数据库的用户名new_database
是新创建的数据库的名称数据转储.sql
是要导入的数据转储文件,位于当前目录中
如果命令成功运行,它将不会产生任何输出。如果在过程中出现任何错误,mysql
将在终端上将它们打印出来。要检查导入是否成功,请登录到 MySQL shell 并检查数据。使用 USE new_database
选择新数据库,然后使用 SHOW TABLES;
或类似的命令查看一些数据。
结论
在本教程中,您从 MySQL 或 MariaDB 数据库创建了一个数据库转储。然后将该数据转储导入到一个新数据库中。mysqldump
还有其他设置,您可以使用它们来更改系统创建数据转储的方式。您可以从官方 mysqldump
文档页面了解更多信息。
要了解更多关于 MySQL 的信息,请查看我们的 MySQL 资源页面。
要了解更多关于 MySQL 查询的信息,请查看我们的教程《MySQL 查询入门》。