使用mysqldump 备份数据与恢复

数据库 piniu 993浏览 0评论

查看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;

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • * 昵称:
  • * 邮箱: