MySQL 复制数据库
数据库是用于存储由用户访问和管理的有序记录集合的应用程序。它将数据存储在表、行、列和索引中,以便快速找到相关信息。
MySQL复制或克隆数据库是一个功能,允许我们创建一个现有数据库的副本,包括表结构、索引、约束、默认值等。当我们的数据库意外丢失或出现故障时,创建原始数据库的副本非常有用。复制数据库最常见的用途是进行数据备份。在计划对原始数据库进行重大更改时,它也非常有用。
在 MySQL 中,创建原始数据库的克隆是一个 三步骤过程: 首先,将原始数据库记录转储(复制)到一个临时文件中,该文件保存了重新插入数据到新数据库的SQL命令。其次,需要创建一个新数据库。最后,处理 SQL 文件,将数据复制到新数据库中。
我们需要按照以下步骤将数据库复制到另一个数据库:
- 首先,使用 CREATE DATABASE 语句创建一个新数据库。
- 其次,将数据存储到一个 SQL文件 中。我们可以为此文件指定任何名称,但它的扩展名必须为 .sql 。
- 第三,使用 mysqldump 工具导出所有数据库对象以及其数据进行复制,然后将此文件导入新数据库。
为演示起见,我们将使用以下步骤将 testdb 数据库复制到 testdb_copy 数据库:
打开MySQL控制台,并写下密码(如果我们在安装过程中设置了密码)。现在我们可以使用以下命令创建testdb的副本数据库了:
mysql> CREATE DATABASE testdb_copy;
接下来,使用SHOW DATABASES语句进行验证:
mysql> SHOW DATABASES;
这个命令将返回服务器中所有可用的数据库,在红色矩形框中可以看到新创建的数据库:
现在,打开一个DOS窗口或终端窗口,以命令行方式访问MySQL服务器。例如,如果我们在C盘安装了MySQL, 将以下文件夹复制并粘贴到我们的DOS命令中。然后,按下 **Enter 键。
C:\Users\javatpoint> CD C:\Program Files\MySQL\MySQL Server 8.0\bin
在下一步中,我们需要使用mysqldump工具将数据库对象和数据复制到SQL文件中。假设我们想要将testdb的数据库对象和数据转储(复制)到位于 D:\Database_backup文件夹。 要执行此操作,请执行以下语句:
mysqldump -u root -p testdb > D:\Database_backup\testdb.sql
Enter password: **********
以上语句指示mysqldump工具使用用户名和密码登录MySQL数据库服务器,然后将testdb数据库的数据库对象和数据导出到 D:\Database_backup\testdb.sql。 需要注意的是,导出数据库使用了用于从一个位置导出数据库到另一个位置的操作符(>)。
在下一步中,我们需要将D:\Database_backup\testdb.sql文件导入到testdb_copy数据库。为此,请执行以下语句:
mysql -u root -p testdb_copy < D:\Database_backup\testdb.sql
Enter password: **********
需要注意的是,操作符(<)用于将数据库从一个位置导入到另一个位置。
最后,我们可以通过在MySQL命令行工具中使用 SHOW TABLES 命令来验证上述操作是否成功:
mysql> SHOW TABLES;
在此输出中,我们可以看到将testdb数据库中的所有对象和数据成功复制到testdb_copy数据库。