How To Copy a MySQL Database

摘要:本教程向您展示如何在同一台服务器上复制 MySQL 数据库,以及如何从一台服务器复制到另一台服务器。

在同一服务器上复制 MySQL 数据库

Copy MySQL Database

要复制 MySQL 数据库,您需要执行以下步骤:

  1. 首先,使用CREATE DATABASE语句创建一个新数据库
  2. 其次,使用mysqldump工具导出要从中复制的数据库的所有数据库对象和数据。
  3. 第三,将 SQL 转储文件导入到新数据库中。

为了演示,我们将classicmodels数据库复制到classicmodels_backup数据库。

步骤1 。创建classmodels_backup数据库:

首先,登录MySQL数据库服务器:

>mysql -u root -p
Enter password: **********
Code language: SQL (Structured Query Language) (sql)

然后,使用CREATE DATABASE语句,如下所示:

> CREATE DATABASE classicmodels_backup;
Code language: SQL (Structured Query Language) (sql)

三、使用SHOW DATABASES命令验证:

> SHOW DATABASES
Code language: SQL (Structured Query Language) (sql)

MySQL 数据库服务器返回以下输出:

+----------------------+
| Database             |
+----------------------+
| classicmodels        |
| classicmodels_backup |
| information_schema   |
| mysql                |
| performance_schema   |
| sys                  |
+----------------------+
6 rows in set (0.00 sec)
Code language: SQL (Structured Query Language) (sql)

如您所见,我们已经成功创建了classicmodels_backup数据库。

步骤2 。使用mysqldump工具将数据库对象和数据转储到 SQL 文件中。

假设您要将classicmodels数据库的数据库对象和数据转储到位于D:\db文件夹的 SQL 文件中,命令如下:

>mysqldump -u root -p classicmodels > d:\db\classicmodels.sql
Enter password: **********
Code language: SQL (Structured Query Language) (sql)

基本上,此命令指示mysqldump使用root用户帐户和密码登录 MySQL 服务器,并将classicmodels数据库的数据库对象和数据导出到d:\db\classicmodels.sql 。请注意,运算符 ( > ) 表示导出。

步骤3 。将d:\db\classicmodels.sql文件导入classicmodels_backup数据库。

>mysql -u root -p classicmodels_backup < d:\db\classicmodels.sql
Enter password: **********
Code language: SQL (Structured Query Language) (sql)

请注意,运算符 ( < ) 表示导入。

要验证导入,您可以使用SHOW TABLES命令执行快速检查。

> SHOW TABLES FROM classicmodels_backup;
Code language: SQL (Structured Query Language) (sql)

它返回以下输出:

+--------------------------------+
| Tables_in_classicmodels_backup |
+--------------------------------+
| customers                      |
| employees                      |
| offices                        |
| orderdetails                   |
| orders                         |
| payments                       |
| productlines                   |
| products                       |
+--------------------------------+
8 rows in set (0.01 sec)
Code language: SQL (Structured Query Language) (sql)

如您所见,我们已成功将所有对象和数据从classicmodels数据库复制到classicmodels_backup数据库。

将 MySQL 数据库从一台服务器复制到另一台服务器

要将 MySQL 数据库从一台服务器复制到另一台服务器,请使用以下步骤:

  1. 将源服务器上的数据库导出到 SQL 转储文件。
  2. 将 SQL 转储文件复制到目标服务器
  3. 将SQL转储文件导入到目标服务器

让我们看一下如何将classicmodels数据库从一台服务器复制到另一台服务器。

首先,将classicmodels数据库导出到db.sql文件。

>mysqldump -u root -p --databases classicmodels > d:\db\db.sql
Enter password: **********
Code language: SQL (Structured Query Language) (sql)

请注意, --database选项允许mysqldump在 SQL 转储文件中包含CREATE DATABASEUSE语句。这些语句将在目标服务器中创建classicmodels数据库,并使新数据库作为加载数据的默认数据库。

简而言之,当我们使用--database选项时,以下语句将包含在 SQL 转储文件的开头。

CREATE DATABASE `classicmodels`.

USE `classicmodels`;
Code language: SQL (Structured Query Language) (sql)

第三,将db.sql文件导入到数据库服务器,假设 db.sql 文件已复制到 c:\tmp\ 文件夹。

>mysql -u root -p classicmodels < c:\tmp\db.sql
Code language: SQL (Structured Query Language) (sql)

在本教程中,您逐步学习了如何在同一台服务器上复制 MySQL 数据库以及如何将数据库从一台服务器复制到另一台服务器。

本教程有帮助吗?