DOCS-1: Init document work

This commit is contained in:
Blake Ridgway
2026-07-28 07:20:32 -05:00
parent 8f02a3fc8e
commit 0cbcc962f7
66 changed files with 12224 additions and 71 deletions

View File

@@ -0,0 +1,119 @@
---
title: "Back Up and Restore a MySQL Database"
description: "How to export and import MySQL databases on Arcline shared hosting using phpMyAdmin and the command line."
section: getting-started
order: 3
---
# Back Up and Restore a MySQL Database
Regular database backups are the most important thing you can do to protect your site. A file backup without a database backup is useless for dynamic sites like WordPress.
---
## Export via phpMyAdmin (easiest)
phpMyAdmin is available in cPanel → **Databases → phpMyAdmin**.
1. In the left sidebar, click the database name you want to export.
2. Click the **Export** tab at the top.
3. Leave the method as **Quick** and format as **SQL**.
4. Click **Go**.
The browser will download a `.sql` file. Store it somewhere safe — not on the same server.
For large databases (over 50 MB), use the **Custom** export method and enable **Add DROP TABLE** so the import won't fail on existing tables.
---
## Export via command line (mysqldump)
SSH into your server and run:
```bash
mysqldump -u username -p database_name > backup_$(date +%Y%m%d).sql
```
You'll be prompted for the MySQL password. On cPanel servers, the MySQL username is prefixed with your cPanel username:
```bash
mysqldump -u cpanelusername_dbusername -p cpanelusername_dbname > backup.sql
```
Check your cPanel → **Databases → MySQL Databases** for the exact username and database name.
To compress the backup immediately:
```bash
mysqldump -u username -p database_name | gzip > backup_$(date +%Y%m%d).sql.gz
```
---
## Download your backup via SFTP
After exporting from the command line, download the `.sql` or `.sql.gz` file to your local machine using FileZilla or Cyberduck (see [Upload Files via SFTP](/getting-started/sftp/)).
The file will be in your home directory: `/home/username/backup.sql`.
---
## Import a database
### phpMyAdmin
1. In cPanel → phpMyAdmin, click the target database in the left sidebar.
2. Click the **Import** tab.
3. Click **Choose File** and select your `.sql` file.
4. Click **Go**.
phpMyAdmin has a file size limit (usually 50100 MB). For larger databases, use the command line.
### Command line import
```bash
mysql -u username -p database_name < backup.sql
```
For a compressed backup:
```bash
gunzip < backup.sql.gz | mysql -u username -p database_name
```
> Make sure the target database already exists in cPanel before importing. Create it in cPanel → **Databases → MySQL Databases** if needed, and make sure the database user is assigned to it with all privileges.
---
## Automate daily backups with cron
SSH in and open your crontab:
```bash
crontab -e
```
Add this line to run a backup every day at 2 AM:
```
0 2 * * * mysqldump -u cpanelusername_dbuser -pYOURPASSWORD cpanelusername_dbname | gzip > ~/backups/db_$(date +\%Y\%m\%d).sql.gz
```
A few notes:
- Replace `YOURPASSWORD` with your actual MySQL password (no space after `-p`)
- `~/backups/` must exist: `mkdir ~/backups`
- The `\%` escaping is required in crontab
Also set up a cron to delete backups older than 30 days to avoid filling up disk space:
```
30 2 * * * find ~/backups -name "*.sql.gz" -mtime +30 -delete
```
cPanel also has a built-in cron interface under **Advanced → Cron Jobs** if you prefer a GUI.
---
## cPanel full backup
For a complete backup of files **and** databases together, use cPanel → **Files → Backup Wizard**. Choose **Back Up Your Website** and download the full backup. These can be large — only practical for occasional snapshots, not daily automation.