借助于 mysqldump 命令可以进行数据库的备份。
用法:mysqldump [OPTIONS] database [tables]
或:mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
或:mysqldump [OPTIONS] --all-databases [OPTIONS]
OPTIONS:
OPTION | 默认 | 描述 |
---|---|---|
-A, –all-databases | FALSE | 备份所有数据库 |
-B, –databases | FALSE | 备份指定数据库 |
-n, –no-create-db | FALSE | 不生成建库语句 |
-t, –no-create-info | FALSE | 不备份建表结果 |
-d, –no-data | FALSE | 不备份表数据 |
-c, –complete-insert | FALSE | INSERT 语句中加入列名 |
–no-autocommit | FALSE | 使用 autocommit/commit 语句包围表 |
–add-drop-database | FALSE | 创建数据库之前增加删除操作 DROP DATABASE |
–add-drop-table | TRUE | 创建表之前增加删除操作 DROP TABLE,使用 --skip-add-drop-table 禁用 |
–add-locks | TRUE | 执行 INSERT 语句时加锁,使用 --skip-add-locks 禁用 |
–default-character-set | FALSE | 指定字符集 |
-e, –extended-insert | TRUE | INSERT 语句中批量插入,使用 --skip-extended-insert 禁用 |
–ignore-table=name | FALSE | 忽略指定的表,必须加上数据库名,比如 --ignore-table=database.table |
-l, –lock-tables | TRUE | 用读锁锁定表,使用 --skip-lock-tables 禁用 |
-r, –result-file=name | FALSE | 输入备份内容到文件 |
–single-transaction | FALSE | 在事务中进行备份,减少锁表 |
1、备份所有数据库
mysqldump -uroot -p -A -r result.sql
2、备份指定数据库
mysqldump -uroot -p --databases db1 db2 -r result.sql
3、备份某个表的数据
mysqldump -uroot -p --databases db1 --tables table1 -r result.sql