mysql安装完成后,最基础也最重要的一项工作就是做好数据库的备份与恢复。无论你是用在开发环境还是生产环境,掌握mysqldump和mysql客户端的基本用法,都能在误删表或服务器故障时快速找回数据。

使用mysqldump进行备份
mysqldump是mysql自带的逻辑备份工具,它会把数据库结构和数据生成标准的SQL语句文本。
备份整个数据库
打开终端或命令提示符,执行以下命令可把名为test_db的数据库导出为sql文件:
# 备份整个数据库到文件 mysqldump -u root -p test_db > /backup/test_db.sql
输入密码后,备份文件就生成了。如果要把所有库一起备份,使用--all-databases参数。
备份单张表
若只需备份某库中的一张表,命令格式如下:
# 备份test_db库中的user表 mysqldump -u root -p test_db user > /backup/user.sql
使用mysql命令恢复数据
恢复的本质是把备份的SQL文件重新执行一遍。确保目标库已经存在,若不存在先创建。
恢复整个数据库
# 先登录创建空库 mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS test_db;" # 导入备份文件 mysql -u root -p test_db < /backup/test_db.sql
恢复单表
单表恢复与整库类似,只要把文件定向导入对应库即可。
mysql -u root -p test_db < /backup/user.sql
通过SQL语句导出与导入
除了命令行,也可以在mysql客户端里用SELECT INTO OUTFILE和LOAD DATA语句处理纯文本数据。
-- 导出user表为csv SELECT * FROM user INTO OUTFILE '/tmp/user.csv' FIELDS TERMINATED BY ','; -- 从csv恢复 LOAD DATA INFILE '/tmp/user.csv' INTO TABLE user FIELDS TERMINATED BY ',';
注意事项
- 备份文件要存放在数据库服务器之外,防止磁盘损坏一同丢失。
- 恢复前务必确认备份文件完整,可用
head命令查看文件头是否正常。 - 生产环境建议结合定时任务,每天自动执行mysqldump。
定期备份是最低成本的数据安全方案,安装mysql后请立刻规划备份策略。
| 场景 | 推荐命令 |
|---|---|
| 整库备份 | mysqldump -u root -p db > file.sql |
| 整库恢复 | mysql -u root -p db < file.sql |