mysql数据库备份 mysqldump

一、--all-databases

  /application/mysql3307/bin/mysqldump -uroot -S /application/mysql3307/logs/mysql.sock -p123456 --all-databases > database_`date '+%Y-%m-%d-%H:%M:%S'`.sql

二、--databases

  /application/mysql3307/bin/mysqldump -uroot -S /application/mysql3307/logs/mysql.sock -p123456 --databases wohaoshuai mysql > database_`date '+%Y-%m-%d-%H'`.sql

三、不指定--databases

  /application/mysql3307/bin/mysqldump -uroot -S /application/mysql3307/logs/mysql.sock -p123456  wohaoshuai > database_`date '+%Y-%m-%d-%H'`.sql

  1、当对一个数据库进行备份时,--databases允许省略,但是省略后导致的是备份文件名.sql中没有create database和use语句,那么恢复备份文件时,必须指定一个默认的数据库名,由此服务器才知道备份文件恢复到哪个数据库中;由此可以导致你可以使用一个和原始数据库名称不同的数据库名。

四、调用mysqldump备份某个数据库中的某几张表:mysqldump –u用户名 –p 数据库名 表名1 表名2 表名3… > 备份文件名.sql

  /application/mysql3307/bin/mysqldump -uroot -S /application/mysql3307/logs/mysql.sock -p123456  wohaoshuai(数据库) wohaoshuai1(表) wohaoshuai2(表) > database_`date '+%Y-%m-%d-%H'`.sql

五、恢复sql格式的备份文件

  1、通过mysqldump备份的文件,如果用了 --all-databases或--databases选项,则在备份文件中包含create database和use语句,故并不需要指定一个数据库名去恢复备份文件。

    a、mysql -uroot -p123456 < 备份文件.sql

    b、在mysql命令下,用source命令导入备份文件:

      source 备份文件.sql

  2、如果通过mysqldump备份的是单个数据库,且没有使用--databases选项,则备份文件中不包含create database和use语句,那么在恢复的时候必须先创建数据库。

    mysqladmin -u 用户名 -p create 数据库名  //创建数据库

    mysql -u 用户名 -p 数据库名 < 备份文件.sql

猜你喜欢

转载自www.cnblogs.com/Presley-lpc/p/9474243.html