查看mysqldump 语法和选项
mysqldump --help
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] –databases [OPTIONS] DB1 [DB2 DB3…]
OR mysqldump [OPTIONS] –all-databases [OPTIONS]
–all-databases 表示备份系统中所有数据库,使用–databases参数之后,必须指定至少一个数据库的名称,多个数据库名称之间用空格隔开
一、SQL格式备份数据,示例如下:
# 指定数据备份路径: mysqldump –h 主机名 –u 用户名 –p --all-databases > /root/db_back.sql
# 用mysqldump带有- -all-databases选项备份所有的数据库 mysqldump –h 主机名 –u 用户名 –p --all-databases > /root/db_back.sql
#用mysqldump带有- -databases选项备份指定的数据库 mysqldump –h 主机名 –u 用户名 –p --databases db1 db2 db3 > /root/db_back.sql
#用mysqldump备份一个指定的数据库: mysqldump –h 主机名 –u 用户名 –p --databases db > /root/db_back.sql
#用mysqldump不带有--databases选项备份指定的一个数据库,生成的备份文件中是没有CREATE DATABASE和USE语句的: mysqldump –h 主机名 –u 用户名 –p db > 备份文件名.sql
#用mysqldump备份某个数据库中的某几张表: mysqldump –u用户名 –p db1 table1 table2 table3 > db_tables_back.sql
二、恢复SQL格式的备份文件
通过mysqldump备份的文件,如果用了–all-databases或–databases选项,则在备份文件中包含CREATE DATABASE和USE语句,故并不需要指定一个数据库名去恢复备份文件。
#在Shell命令下: shell> mysql –u 用户名 –p < db_back.sql
#在mysql命令下,用source命令导入备份文件: mysql> source备份文件.sql; //已登录mysql,用source命令
如果通过mysqldump备份的是单个数据库,且没有使用–databases选项,则备份文件中不包含CREATE DATABASE和USE语句,那么在恢复的时候必须先创建数据库。
#在shell命令下: shell> mysqladmin –u 用户名 –p create 数据库名 //创建数据库 shell> mysql –u 用户名 –p数据库名 < 备份文件.sql
# 在mysql命令下: mysql> CREATE DATABASE IF NOT EXIST 数据库名; mysql> USE 数据库名; mysql> source备份文件.sql;