备份
- 备份全部数据库,使用--all-databases或-A参数
mysqldump -u root -h 主机 -p --all-databases>保存文件路径/数据库名.sql
mysqldump -u root -h 主机 -p -A>保存文件路径/数据库名.sql
root@223d54d3d756:/data/server/mysql/backup# mysqldump -uroot -p -A>mydb.sql
Enter password:
root@223d54d3d756:/data/server/mysql/backup# ls -lh
-rw-r--r--. 1 root root 3.5M Dec 29 02:46 mydb.sql
- 备份部分数据库,使用--databases或-B参数
mysqldump -u root -h 主机 -p -B [数据库名1 [数据库名2...]]>保存文件路径/备份文件名.sql
root@223d54d3d756:/data/server/mysql/backup# mysqldump -u root -p -B test_db test_db2>mydb.sql
Enter password:
root@223d54d3d756:/data/server/mysql/backup# ls
mydb.sql
- 备份单库
mysqldump -u root -h 主机 -p 数据库名>保存文件路径/备份文件名.sql
root@223d54d3d756:/data/server/mysql/backup# mysqldump -uroot -p test_db>test.db.sql
Enter password:
root@223d54d3d756:/data/server/mysql/backup# ls
test.db.sql
- 备份部分表
mysqldump -u root -h 主机 -p 数据库名 [表名1 [表名2...]]>保存文件路径/备份文件名.sql
root@223d54d3d756:/data/server/mysql/backup# ls
root@223d54d3d756:/data/server/mysql/backup# mysqldump -u root -p test_db user1 user2 >mydb.sql
Enter password:
root@223d54d3d756:/data/server/mysql/backup# ls
mydb.sql
- 备份单表部分数据
mysqldump -u root -h 主机 -p 数据库名 表名 --where="id<10" >保存文件路径/备份文件名.sql
root@223d54d3d756:/data/server/mysql/backup# mysqldump -u root -p test_db user1 --where="id<3" > mydb.sql
Enter password:
root@223d54d3d756:/data/server/mysql/backup# ls
mydb.sql
- 排除某些表的备份
mysqldump -u root -h 主机 -p 数据库名 --ignore-table=数据库名.数据表名 >保存文件路径/备份文件名.sql
root@223d54d3d756:/data/server/mysql/backup# mysqldump -u root -p test_db --ignore-table=test_db.user1 > mydb.sql
Enter password:
root@223d54d3d756:/data/server/mysql/backup# ls
mydb.sql
- 只备份结构或只备份数据
只备份结构的话可以使用 --no-data 简写为 -d 选项;
只备份数据可以使用 --no-create-info 简写为 -t。
- 备份中包含存储过程、函数、事件
mysqldump备份默认是不包含存储过程,自定义函数及事件的。可以使用 --routines 或 -R 选项来备份存储过程及函数,使用 --events 或 -E 参数来备份事件。
恢复
- 单库备份恢复(如果备份文件中有创建数据库语句,则在恢复时可省略数据库名)
mysql -u root -p 数据库名 < 备份文件名.sql
- 全量备份恢复
mysql -u root -p < 备份文件名.sql
- 全量备份中恢复部分库,先将全量中想要的库数据分离出新文件,再将新文件导入
示例:恢复test_db库:
sed -n '/^-- Current Database: `test_db`/,/^-- Current Database: `/p' all_database.sql > test_db.sql