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
To copy a MySQL database, you need to follow these steps:
- First, create a new database using
CREATE DATABASE
statement. - Second, export all the database objects and data of the database from which you want to copy using
mysqldump
tool. - 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:
- Export the database on the source server to a SQL dump file.
- Copy the SQL dump file to the destination server
- 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.