How To Copy a MySQL Database

Created with Sketch.

How To Copy a MySQL Database

Summary: this tutorial shows you how to copy a MySQL database on the same server and from a server to another.

Copy a MySQL database on the same server

Copy MySQL Database

To copy a MySQL database, you need to follow these steps:

  1. First, create a new database using CREATE DATABASE statement.
  2. Second, export all the database objects and data of the database from which you want to copy using mysqldump tool.
  3. Third, import the SQL dump file into the new database.

For the demonstration, we will copy the classicmodels database to classicmodels_backup database.

Step 1. Create the classmodels_backup database:

First, log in to MySQL database server:

>mysql -u root -p
Enter password: **********

Code language: SQL (Structured Query Language) (sql)

Then, use CREATE DATABASE statement as follows:

> CREATE DATABASE classicmodels_backup;

Code language: SQL (Structured Query Language) (sql)

Third, use SHOW DATABASES command to verify:

> SHOW DATABASES

Code language: SQL (Structured Query Language) (sql)

MySQL database server returns the following output:

+----------------------+
| Database |
+----------------------+
| classicmodels |
| classicmodels_backup |
| information_schema |
| mysql |
| performance_schema |
| sys |
+----------------------+
6 rows in set (0.00 sec)

Code language: SQL (Structured Query Language) (sql)

As you see, we have created the classicmodels_backup database successfully.

Step 2. Dump database objects and data into SQL file using the mysqldump tool.

Suppose, you want to dump the database objects and data of the classicmodels database into an SQL file located at D:\db folder, here is the command:

>mysqldump -u root -p classicmodels > d:\db\classicmodels.sql
Enter password: **********

Code language: SQL (Structured Query Language) (sql)

Basically, this command instructs mysqldump to log in to the MySQL server using the root user account with a password and exports the database objects and data of the classicmodels database to d:\db\classicmodels.sql. Note that the operator (>) means exporting.

Step 3. Import the d:\db\classicmodels.sql file into classicmodels_backup database.

>mysql -u root -p classicmodels_backup < d:\db\classicmodels.sql
Enter password: **********

Code language: SQL (Structured Query Language) (sql)

Note that the operator ( <) means importing.

To verify the import, you can perform a quick check by using the SHOW TABLES command.

> SHOW TABLES FROM classicmodels_backup;

Code language: SQL (Structured Query Language) (sql)

It returned the following output:

+--------------------------------+
| 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)

As you see, we have successfully copied all the objects and data from the classicmodels database to classicmodels_backup database.

Copy a MySQL database from a server to another

To copy a MySQL database from a server to another, you use the following steps:

  1. Export the database on the source server to a SQL dump file.
  2. Copy the SQL dump file to the destination server
  3. Import the SQL dump file to the destination server

Let’s take a look at how to copy the classicmodels database from a server to another.

First, export the classicmodels database to db.sql file.

>mysqldump -u root -p --databases classicmodels > d:\db\db.sql
Enter password: **********

Code language: SQL (Structured Query Language) (sql)

Note that --database option allows mysqldump to include both CREATE DATABASE and USE statements in the SQL dump file. These statements will create the classicmodels database in the destination server and make the new database as the default database for loading the data.

In short, the following statements are included at the beginning of the SQL dump file when we use --database option.

CREATE DATABASE `classicmodels`.USE `classicmodels`;

Code language: SQL (Structured Query Language) (sql)

Third, import the db.sql file to the database server with the assumption that the db.sql file was copied to c:\tmp\ folder.

>mysql -u root -p classicmodels < c:\tmp\db.sql

Code language: SQL (Structured Query Language) (sql)

In this tutorial, you have learned step by step how to copy a MySQL database on the same server and copy the database from one server to another.

Leave a Reply

Your email address will not be published. Required fields are marked *