【MySQL基础】数据库的备份与还原
一、删除前的备份策略
1. 使用mysqldump工具备份(推荐)
mysqldump是MySQL官方提供的备份工具,可以生成包含所有数据和结构的SQL文件。
完整备份命令:
mysqldump -u [用户名] -p[密码] --databases [数据库名] > backup.sql
实际示例:
# 备份单个数据库
mysqldump -u root -p123456 --databases my_shop > my_shop_backup_$(date +%Y%m%d).sql
# 备份多个数据库
mysqldump -u root -p123456 --databases db1 db2 db3 > multi_db_backup.sql
# 备份所有数据库(需谨慎)
mysqldump -u root -p123456 --all-databases > full_backup.sql
2. 直接复制数据文件(物理备份)
对于MyISAM存储引擎或需要快速备份的大型数据库:
1.停止MySQL服务
systemctl stop mysql
2.复制数据目录(默认通常在/var/lib/mysql)
cp -R /var/lib/mysql /backup/mysql_backup
3.重启MySQL服务
systemctl start mysql
二、数据库删除操作
确认备份完成后,执行删除命令:
-- 安全删除(推荐)
DROP DATABASE IF EXISTS database_to_delete;
-- 强制删除(不推荐)
DROP DATABASE database_to_delete;
三、数据库还原方法
1. 使用mysql命令还原mysqldump备份
基本还原命令:
mysql -u [用户名] -p[密码] < backup_file.sql
实际示例:
# 还原单个数据库备份
mysql -u root -p123456 < my_shop_backup_20230815.sql
# 还原到不同数据库名
mysql -u root -p123456 -e "CREATE DATABASE new_shop;"
mysql -u root -p123456 new_shop < my_shop_backup.sql
2. 还原物理备份
1.停止MySQL服务
systemctl stop mysql
2.恢复数据文件
rm -rf /var/lib/mysql/*
cp -R /backup/mysql_backup/* /var/lib/mysql/
chown -R mysql:mysql /var/lib/mysql
3.重启MySQL服务
systemctl start mysql
云服务器爆款直降90%
新客首单¥68起 | 人人可享99元套餐,续费同价 | u2a指定配置低至2.5折1年,立即选购享更多福利!