MySQL 數(shù)據(jù)庫備份與恢復(fù)實(shí)戰(zhàn)教程
一、簡(jiǎn)介
MySQL 是一種流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),廣泛應(yīng)用于各種應(yīng)用程序中。為了確保數(shù)據(jù)安全和系統(tǒng)穩(wěn)定,定期備份和恢復(fù)數(shù)據(jù)庫是至關(guān)重要的。本教程將介紹如何進(jìn)行 MySQL 數(shù)據(jù)庫的備份與恢復(fù)。
二、MySQL 備份
使用 mysqldump 工具進(jìn)行備份
mysqldump 是 MySQL 提供的一個(gè)用于導(dǎo)出數(shù)據(jù)庫結(jié)構(gòu)和數(shù)據(jù)的命令行工具。以下是使用 mysqldump 備份數(shù)據(jù)庫的基本步驟:
mysqldump -u [username] -p [database_name] > [dump_file.sql]
示例:
mysqldump -u root -p mydatabase > mydatabase_backup.sql
mysqldump -u [username] -p --databases [db1] [db2] > [dump_file.sql]
示例:
mysqldump -u root -p --databases db1 db2 > multi_databases_backup.sql
mysqldump -u [username] -p --all-databases > [dump_file.sql]
示例:
mysqldump -u root -p --all-databases > all_databases_backup.sql
定期自動(dòng)備份
為了實(shí)現(xiàn)定期自動(dòng)備份,可以使用 cron 定時(shí)任務(wù)來自動(dòng)執(zhí)行備份命令。以下是一個(gè)示例腳本,定期備份數(shù)據(jù)庫并保存到指定目錄:
#!/bin/bash
TIMESTAMP=$(date +"%F")
BACKUP_DIR="/backup/$TIMESTAMP"
MYSQL_USER="root"
MYSQL_PASSWORD="password"
MYSQL=/usr/bin/mysql
MYSQLDUMP=/usr/bin/mysqldump
mkdir -p "$BACKUP_DIR"
$MYSQLDUMP -u $MYSQL_USER -p$MYSQL_PASSWORD --all-databases > "$BACKUP_DIR/all_databases.sql"
crontab -e
添加以下行,設(shè)置每天凌晨2點(diǎn)自動(dòng)備份:
0 2 * * * /path/to/backup_script.sh
三、MySQL 恢復(fù)
從備份文件恢復(fù)數(shù)據(jù)庫
使用 mysql 命令行工具可以將備份文件恢復(fù)到數(shù)據(jù)庫中。以下是恢復(fù)數(shù)據(jù)庫的基本步驟:
mysql -u [username] -p [database_name] < [dump_file.sql]
示例:
mysql -u root -p mydatabase < mydatabase_backup.sql
mysql -u [username] -p < [dump_file.sql]
示例:
mysql -u root -p < multi_databases_backup.sql
mysql -u [username] -p < [dump_file.sql]
示例:
mysql -u root -p < all_databases_backup.sql
使用 mysqlimport 工具恢復(fù)數(shù)據(jù)
除了 mysql 命令行工具外,mysqlimport 也是一種恢復(fù)數(shù)據(jù)的常用方法。以下是使用 mysqlimport 恢復(fù)數(shù)據(jù)的步驟:
mysqldump -u [username] -p --tab=/path/to/export [database_name]
mysqlimport --local -u [username] -p [database_name] /path/to/export/[table_name].txt
示例:
mysqlimport --local -u root -p mydatabase /path/to/export/mytable.txt