mysql复习mysqldump命令

来源:互联网 发布:中卫云计算 二期 编辑:程序博客网 时间:2024/05/16 07:30

mysql有很多的导入数据库方法 ,然而,这些只是数据库传输中的一半,还有一半就是数据库的导出。因为,许多时候需要我们数据导出进行必要的备份。数据的造价是昂贵的,所以大家也要小心谨慎的处理他们,一般大家常用的是基于b/s模式管理的phpmyadmin,还有mysql-front,navicat mysql等工具,工具有很多,但是,掌握mysql自带的备份工具也是必须的,下面就是我来介绍mysqldump命令的使用方法:

(mysqldump命令位于mysql/bin目录下)
mysqldump工具很多方面类似相反作用的工具mysqlimport。它们有一些同样的选项。但mysqldump能够做更多的事情。它可以把整个数据库装载到一个单独的文本文件中。这个文件包含有所有重建您的数据库所需要的SQL命令。这个命令取得所有的模式(Schema,后面有解释)并且将其转换成DDL语法(Create语句,即数据库定义语句),取得所有的数据,并且从这些数据中创建Insert语句。这个工具将您的数据库中所有的设计倒转。因为所有的东西都被包含到了一个文本文件中。这个文本文件可以用一个简单的批处理和一个合适SQL语句导回到MySQL中。这个工具令人难以置信地简单而快速。决不会有半点让人头疼地地方。

因此,如果您像装载整个数据库eays_studio的内容到一个文件中,可以使用下面的命令:
进入dos(前提你设置好环境变量)mysql -uroot -p eays_studio > d:/backup.sql
你可能只是需要指定备份一个表可 如:eays_studio 下的bbs表以如下操作:
mysql -uroot -p eays_studio bbs > d:/backup.sqlbackup.sql
这个非常的灵活,您甚至可以使用Where从句来选择您需要的记录导出到文件中。要达到这样的目的,可以使用类似于下面的命令:
mysqldump -uroot -p   where="user_id > 2000" eays_studio bbs > d:/backup.sql

mysqldump工具有大量的选项,部分选项如下表:
选项/Option 作用/Action Performed
--add-drop-table
这个选项将会在每一个表的前面加上Drop TABLE IF EXISTS语句,这样可以保证导回MySQL数据库的时候不会出错,因为每次导回的时候,都会首先检查表是否存在,存在就删除
--add-locks
这个选项会在Insert语句中捆上一个LOCK TABLE和UNLOCK TABLE语句。这就防止在这些记录被再次导入数据库时其他用户对表进行的操作
  
-c or - complete_insert
这个选项使得mysqldump命令给每一个产生Insert语句加上列(field)的名字。当把数据导出导另外一个数据库时这个选项很有用。
--delayed-insert 在Insert命令中加入DELAY选项
-F or -flush-logs 使用这个选项,在执行导出之前将会刷新MySQL服务器的log.
-f or -force 使用这个选项,即使有错误发生,仍然继续导出
--full 这个选项把附加信息也加到Create TABLE的语句中
-l or -lock-tables 使用这个选项,导出表的时候服务器将会给表加锁。
-t or -no-create- info
这个选项使的mysqldump命令不创建Create TABLE语句,这个选项在您只需要数据而不需要DDL(数据库定义语句)时很方便。
  
-d or -no-data 这个选项使的mysqldump命令不创建Insert语句。
在您只需要DDL语句时,可以使用这个选项。
--opt 此选项将打开所有会提高文件导出速度和创造一个可以更快导入的文件的选项。
-q or -quick 这个选项使得MySQL不会把整个导出的内容读入内存再执行导出,而是在读到的时候就写入导文件中。