Backblaze is a fantastic cloud storage solution that has one of the simplest and cheapest pricing optionss. Storage is $0.005/GB/Month, with download costs of $0.01/GB. There are no tiers or minimum costs. When paired with MySQL backups, this makes a fantastic option for storing backups.
In this guide, we will show you how easy it is to backup MySQL to Backblaze using SnapShooter. SnapShooter has a free plan for a single database, so you can get started totally for free, just bring the storage!
# Sign up for SnapShooter
Signing up for SnapShooter is easy and free -- all you need is an email address.
Once you have an account, you can backup one resource for free daily, with options started from $9 to upgrade for larger resources limits and backup frequency. Click Free Trial in the top right Provide your name, email and a password.
# Start backup wizard
Once into the dashboard, you will be greeted by a welcome screen showing you what backup offerings SnapShooter has available. For this guide select, MySQL.
# SSH Setup Step
To perform a MySQL backup, you need to configure an SSH connection to a server you wish backups to pipe through; this is within your environment and acts like a jump box between SnapShooter and your MySQL.
# 1) Configure SSH Connection
You will be asked to provide details of an SSH connection to a server, depending on the backup type you may or may not need root access. (Root access is required when you want to do a file-based backup and backup the whole server)
- Set the Backup name to something you will remember. e.g. Production MySQL
- From the SSH server select an existing or provide the ssh host (ip or hostname), ssh port (default is 22), and the ssh user
- Select an existing SSH key or let SnapShooter generate you a new one
# How do I create a new User for SnapShooter?
If you wish to use a new user for backups on your server you can run the following commands as root:
adduser --disabled-password snapshooter
This will generate a user without a password
# 1) Test SSH Connection
When you press Test and Connect SnapShooter will show the steps to install the key, this involves you pasting the SSH public key into the users authorized_keys
# By Hand
- SSH into your server
- Copy the key we present you
- On the server edit the authorizedkeys file, Make sure you edit the correct users authorized keys. SnapShooter will provide you the normal path e.g. for user called SnapShooter /home/snapshooter/.ssh/authorizedkeys
# Copy Paste
We allow offer a single copy paste method
- Select Single Copy Paste
- Login to Server
- Copy the command
- Paste the command into SSH client connected to the server
When you press test, SnapShooter will connect to your server via SSH to check the connection is good.
SnapShooter will also check the correct packages and libraries are installed on the server, MySQL, tar, curl, unwip, gzip
# Common Errors
# Permission Denied
1. email@example.com: Permission denied (publickey).
This error normally means the server does not have the SSH key installed correctly, try following the steps again
# Configure MySQL
The next step in the process is to configure MySQL backup.
- Provide your MySQL Host, if the database is on the same server as the ssh connection, you should use 127.0.0.1, if not change it to the host or IP of the MySQL instance
- MySQL Port
- MySQL User - You are free to use any user or configure a new one just make sure it it has read access to the databases you want backed up
- MySQL password - Your password is stored encrypted and we use it to write a secure my.cnf file on your server
Once ready you can ask SnapShooter to test your MySQL details, we will connect to the database and check we have Auth access
Next step we ask you to select the database you want to backup, depending on your plan features you might also be able to select all databases.
# Configure Storage
You need to select the storage provider you wish for your backups to be stored with, we allow users to select from a range of providers and in the guide will focus on Backblaze
If you have already setup the storage provider you want you can select it and proceed if not press Connect new External Storage
- Login to Backblaze
- Navigate to B2 Cloud Storage
- Create a Bucket (you can use an existing one if you wish)
- Choose a unique name, and make sure you select private
- Make a note of the endpoint. It should look should like s3.us-west-002.backblazeb2.com depending on region and date of creation
- On the left select App Keys
- Click - Add a new Application Key (master keys will not work with SnapShooter)
- Give your key a name (SnapShooter will not need this)
- If you want, you can restrict the key to just a single bucket. We recommend this
- Press Create new Key
- The application you see will be one time only. Make sure you keep this save
- Return to SnapShooter
- Paste all of the details in, appId as the Access key, and applicationKey as the Secret Access Key
- Press Attach External Storage
- You will be redirected back to the setup wizard and can now carry on setting up your MySQL backups
# Configure Schedule
Scheduling is where the power and ease of use for SnapShooter shins.
You need to tell SnapShooter how often you wish to have backups, currently, we support up to hourly backups. You can also set Timezone and Daily backup time. We will then take your daily backup at this time/timezone and tag it as daily. If you have more than daily backups, we will offset the other backups on this.
With SnapShooter taking backups at the frequency you set you need to decide how many past backups you wish to keep.
Depending on when your backups start SnapShooter will tag them, Hourly, Daily, Weekly and Monthly (Weekly is your first on a Monday, Monthly is your first backup that happens on the 1st of the month)
When a backup is completed SnapShooter will then proceed to prune your backups based on your rules. This way we keep your backups in the most efficient way while also keeping a far horizon
# Finished MySQL Setup
Your setup is now complete
We recommend you test your new configuration by pressing the Backup Now button, as backups happen in the background you can expect a small delay (20s) before the backup will start
Once you backup has completed you will be able to see it in the backup table
Depending on your compression level and the size of the backup it may take time to complete. Every minute SnapShooter will go and check the process to see how far it has got. Using the Log button you can see the latest state the backup is in.
When the MySQL has completed you will be shown the restore guide for if you ever needed to recover the database