MySQL备份与还原

一、数据备份

1. mysqldump方式:

1) shell> mysqldump [options] db_name [tables]>backupname.sql

备份一个数据库,当有tables时,则只备份该数据库中的tables表。

例:

shell>mysqldump -u aiml -p students student>D:/bksql.sql

Enter password: ****

2) shell> mysqldump [options] –dabatase DB1 [DB2 DB3...]>backupname.sql

备份多个数据库

例:

shell>mysqldump -u root -p –database students p1>D:/twodb.sql

Enter password: ****

3) shell> mysqldump [options] –all-database>backupname.sql

备份所有数据库

例:

shell>mysqldump -u root -p –all-database>D:/alldb.sql

Enter password: ****

2. mysqlhotcopy方式:

如果不能停止MySQL服务器,可以采用mysqlhotcopy工具。mysqlhotcopy工具是一个Perl脚本,主要应用在Linux操作系统中。

mysqlhotcopy工具使用lock tables、flush tables和cp来进行快速备份。原理:先将要备份的数据库加上一个读操作锁,然后,用flush tables将内存中的数据写回到硬盘上的数据库中,最后,把要备份的数据库文件复制到目标目录。

shell> mysqlhotcopy [options] dbname1 dbname2… backupDir/

注:mysqlhotcopy只适合MyISAM存储引擎。

3. 直接复制整个数据目录

该方法虽然简单快速,但不是最好的备份方法。因为,实际情况可能不允许停止MySQL服务器。而且,这种方法对InnoDB存储引擎不适用,且还原时最好是相同版本的MySQL数据库。

二、数据还原

1. 使用mysql命令还原

shell> mysql –u root –p [dbname]<backup.sql

2. 直接复制到数据库目录

使用mysqlhotcopy和直接复制整个数据目录方式备份的数据库数据,可以通过这种方式还原,但是注意,必须保证两个MySQL数据库的主版本号是相同的,且这种方式对InnoDB类型表不适用。


原创文章如转载,请注明:转载自六度外博/歪博 [ http://6duweb.com/ ]

本文固定链接:http://6duweb.com/282.html

6条评论

  1. 直接服务器上复制黏贴,不知道几人和我一样~哈哈

  2. 我来逛逛,顺便帮博主顶一下,嘿嘿。

  3. 谢谢博主的分享噢,,顺便帮忙顶顶

  4. 博客已停止更新,本人回访曾访问过的博客、。

  5. 过来看看滴 留个脚印了

  6. 我来逛逛,顺便帮博主顶一下,嘿嘿。