版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012815136/article/details/84884119
一、前言
对MySQL数据库及其表数据进行备份、还原时,可以采用很多MySQL的数据库管理工具来完成,比如Navicat、SQLyog,等等。但是个人觉得,作为优秀的程序员,很有必要掌握命令行完成相关的备份及还原。
二、备份
mysqldump命令
1. mysqldump命令语法
-- 以下为3种用法,更加详细的信息参考mysqldump的帮助手册
mysqldump [OPTIONS] database [tables]
mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
mysqldump [OPTIONS] --all-databases [OPTIONS]
2. mysqldump命令常用选项
1. --databases, -B: 用于备份多个数据库,如果没有该选项,mysqldump把第一个名字参数作为数据库名,后面的作为表名。使用该选项,mysqldum把每个名字都当作为数据库名。
2. --all-databases, -A:备份所有数据库
3. -h, --host: 主机名(IP地址或域名)
4. -P, --port: 端口号,不写默认3306
5. -u, --user: 用户名
6. -p, --password: 密码
7. -d, --no-data: 备份数据库的表时,只备份表结构,不包含表数据
8. -t, --no-create-info : 备份数据库的表时,不备份表结构(建表语句),只包含表数据
9. -X, --xml :备份的数据格式为xml文件
3. mysqldump命令使用示例
- 备份单个数据库的多个表结构和数据
-- 假设数据库服务器地址为192.168.1.10,端口为3306,数据库用户/密码为root/123456。现在需要备份数据库*db1*中的表*table1*、*table2*,并且将相关内容备份到文件test.dump中
mysqldump -h192.168.1.10 -P3306 -uroot -p123456 db1 table1 table2 > test.dump
- 备份多个数据库
mysqldump -uroot -p --databases db1 db2 > backup.sql
> {回车后,手输入数据库密码进行备份操作}
- 备份所有数据库
mysqldump -uroot -p123456 --all-databases > all_db.dump
三、还原
mysql命令、source命令。还原单个数据库的多个表或者单个数据库时需要指定数据库,而还原多个数据库时不用指定数据库。
1. mysql命令使用示例
-- 执行前,需确保数据库db1已创建
mysql -h192.168.1.10 -P3306 -uroot -p123456 db1 < test.dump
2. source命令使用示例
-- 注意先登录进入命令行界面,才能执行
mysql > use db1
mysql > source test.dump