【MySQL基础】数据库的备份与还原

一、删除前的备份策略

1. 使用mysqldump工具备份(推荐)

mysqldumpMySQL官方提供的备份工具,可以生成包含所有数据和结构的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

阅读剩余
THE END
阿里云ECS特惠活动
阿里云ECS服务器 - 限时特惠活动

云服务器爆款直降90%

新客首单¥68起 | 人人可享99元套餐,续费同价 | u2a指定配置低至2.5折1年,立即选购享更多福利!

新客首单¥68起
人人可享99元套餐
弹性计费
7x24小时售后
立即查看活动详情
阿里云ECS服务器特惠活动