作为 Write for DOnations 计划的一部分,作者选择了 Free and Open Source Fund 来接受捐赠。
介绍
导入和导出数据库是软件开发中的常见任务。 您可以使用数据转储来备份和恢复您的信息。 您还可以使用它们将数据迁移到新的服务器或开发环境。
在本教程中,您将使用 MySQL 或 MariaDB 中的数据库转储(命令可互换)。 具体来说,您将导出一个数据库,然后从转储文件中导入该数据库。
先决条件
要导入或导出 MySQL 或 MariaDB 数据库,您需要:
- 具有非 root sudo 用户的虚拟机。 如果您需要服务器, 到这里创建一个运行您最喜欢的 Linux 发行版 的 DigitalOcean Droplet。 创建后,从 此列表中选择您的发行版,然后按照我们的初始服务器设置指南 。
- 已安装 MySQL 或 MariaDB。 要安装 MySQL,请按照我们的教程 如何安装 MySQL。 要安装 MariaDB,请按照我们的教程 如何安装 MariaDB。
- 在您的数据库服务器中创建的示例数据库。 要创建一个,请按照我们的教程 “MySQL 查询简介” 中的 “创建示例数据库”。
注意: 作为手动安装的替代方案,您可以探索 DigitalOcean Marketplace 的 MySQL 一键式应用程序。
第 1 步 — 导出 MySQL 或 MariaDB 数据库
mysqldump
控制台实用程序将数据库导出到 SQL 文本文件。 这使得传输和移动数据库变得更加容易。 您将需要您的数据库名称和帐户的凭据,该帐户的权限至少允许对数据库进行完全只读访问。
使用 mysqldump
导出数据库:
mysqldump -u username -p database_name > data-dump.sql
username
是您可以登录到数据库的用户名database_name
是要导出的数据库的名称data-dump.sql
是当前目录中存储输出的文件。
该命令不会产生可视输出,但您可以检查 data-dump.sql
的内容以检查它是否是合法的 SQL 转储文件。
运行以下命令:
head -n 5 data-dump.sql
文件的顶部应与此类似,显示名为 database_name
的数据库的 MySQL 转储。
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;
您将看到此输出确认数据库创建。
OutputQuery OK, 1 row affected (0.00 sec)
然后按 CTRL+D
退出 MySQL shell。 从普通命令行,您可以使用以下命令导入转储文件:
mysql -u username -p new_database < data-dump.sql
username
是您可以登录到数据库的用户名newdatabase
是新创建的数据库的名称data-dump.sql
是要导入的数据转储文件,位于当前目录
如果命令成功运行,它不会产生任何输出。 如果在此过程中出现任何错误,mysql
将改为打印到终端。 要检查导入是否成功,请登录 MySQL shell 并检查数据。 使用 USE new_database
选择新数据库,然后使用 SHOW TABLES;
或类似命令查看一些数据。
结论
在本教程中,您从 MySQL 或 MariaDB 数据库创建了数据库转储。 然后,您将该数据转储导入新数据库。 mysqldump
具有其他设置,可用于更改系统创建数据转储的方式。 您可以从官方mysqldump文档页面了解更多信息。
要了解有关 MySQL 的更多信息,请查看我们的 MySQL 资源页面。
要了解有关 MySQL 查询的更多信息,请查看我们的教程 “MySQL 查询简介”。