If you need to create a backup of a remote MySQL database, you can use the mysqldump command. The mysqldump application is known as a client utility and installed alongside MySQL itself.
When executed, mysqldump will create a dump file of the database that includes all the data and the structure of the database in
INSERT statements that you can run on your local machine to create a local copy of the remote database.
In this tutorial, I’ll work through a simple example of using mysqldump to create a local copy of a remote database. I’ll be connecting to a remote server running Ubuntu Server via SSH, running the mysqldump command to backup the database to a file, and then downloading that file to my local machine using SCP.
First, open a terminal and use SSH to login to the remote server hosting your MySQL database. You will need to enter your remote server username before the server IP address using the @ symbol. After running the command enter your password to login.
Next, on the remote server, run the
mysqldump command to create a backup of your MySQL database. Modify the command below and replace
your_mysql_username with your MySQL username, and replace
your_database_name with the name of your database. Then run the command.
It may take a few minutes depending on the size of your database. The
mysqldump command will export the entire MySQL database and write the contents to a
.sql file that you can download. This can then be used to create a new instance of your MySQL database on another server.
mysqldump -u your_mysql_username --password='xxxxxxxxxxx' your_database_name > your_database_name.sql
For the next step you’ll need the full path to the backup file, so enter
pwd to obtain your present working directory. For example, mine is
Logout of the SSH connection to your remote machine and return to the shell on your local machine by entering
logout. This will return you to the shell on your local machine.
Finally, on your local machine, we’ll use the SCP or secure copy application to download the MySQL backup file from the server via SSH.
In the command below we’re starting
scp and creating an SSH connection for the user
matt on the IP address
Once logged in, SCP will look for the file at
/home/matt/your_database_name.sql on the remote server and download it to
/home/work/backups/your_database_name.sql on the local machine. It will give you a useful progress bar, so you can track how much of the database has been downloaded.
scp email@example.com:/home/matt/your_database_name.sql /home/work/backups/your_database_name.sql
Creating a local copy of your MySQL database is a good idea for several reasons. Firstly, it keeps your data backed up. Secondly, it allows you to create your own development environment where you can safely run complex MySQL queries against your database without the risk of slowing down your production database.
To create a local development environment for data science projects running on MySQL databases my preferred approach is to run MySQL in a Docker container. This is a great way to create a development environment for data science projects that can be run on a local machine without the need to install a full-blown server.
Matt Clarke, Saturday, December 04, 2021