您好,欢迎来到宝玛科技网。
搜索
您的当前位置:首页mysql导出数据库命令:mysqldump

mysql导出数据库命令:mysqldump

来源:宝玛科技网

  

语法:

1. mysqldump [options] -all-databases

2. mysqldump [options] --databases database [database ...]

3. mysqldump [options] database [table]

mysqldump可以导出mysql中的数据和表结构。通常可以使用该实用工具备份数据库或将数据库从一个服务器复制到另一个服务器。你可以在处于运行状态的服务器上执行该工具。若要保持表间数据的一致性,需要给表加锁(参见 --lock-tables选项)或关闭mysqld后台。

该工具有三种语法形式。第一种语法用于备份服务器上所有的数据库。第二种语法用于备份指定数据库中所有的表。第三种语法用于备份指定数据库的指定表。

下面给出第一种语法的示例,对服务器上所有数据库进行备份(在linux的命令行下并不是mysql的命令行执行命令,使用mysql的root帐号)。

$ mysqldump --host=russell.dyerhouse.com --user=russell 
        --password --lock-tables --all-databases > /tmp/workrequests.sql

要备份指定的数据库,可以使用mysqldump的第二种语法。在命令行输入下列内容:

$ mysqldump -u russell -p --lock-tables workrequests 
        > /tmp/wokrequests.sql

在此示例中,使用-u选项指定用户名。-p选项可以告知实用工具提示用户输入密码。这些短格式选项可同详细格式选项相互替换,但是详细格式选项已经渐渐成为标准,因此建议使用详细格式选项。--lock-tables选项可以令服务器锁定表,当备份操作结束后为表解锁。下一步,指定需要备份的数据库(workrequests)。最后使用重定向(大于标记)将备份结果存放到指定的文件中。

--lock-tables选项通常不是必需的,因为--opt是默认选项,它包含了对表的锁定操作。事实上,如果正在做备份操作的用户不具备LOCK TABLES权限,则运行mysqldump时会收到出错信息,这就是因为--opt对表进行了锁定。这种情况下,需要使用--skip-opt选项使用--opt失效,这样就不会对表进行锁定了。 

如果你想备份指定的表而不是整个数据库,则可以使用第三种语法。语法并不复杂:只需在数据库名后指定一个或多个表名。示例:

$ mysqldump -u russell -p workrequests work_req clients 
        > /tmp/workreq_clients_tables.sql

mysqldump创建的备份文件是文本文件格式。文件一般包含一个CREATE TABLE语句,该语句用于创建数据库中的表。如果你想省略CREATE TABLE语句,可以为mysqldump添加 --no-create-info(也就是简写的 -t 选项) 选项,这样做就是只导出数据,示例:

$ mysqldump -u russell -p -t workrequests work_req clients 
        > /tmp/workreq_clients_tables.sql

如果只导出表结构,可以使用 --no-data选项(也就是简写的 -d 选项):

$ mysqldump -u russell -p -d workrequests work_req clients 
        > /tmp/workreq_clients_tables.sql

使用mysql客户机可以从mysqldump创建的备份文件中恢复数据。你可以在命令行输入如下内容,恢复前面语句创建的备份文件(其实只要是外部sql文件都可以这样执行):

$ mysql -u russell -p workrequests < /tmp/workrequests.sql

示例中通过小于号标记重定向stdin。这样可以令mysql客户机从指定的文件获取数据。接下来mysql客户机会按照顺序执行备份文件中的SQL语句。执行的过程中不用切换到监视器模式,可以一直保持在命令行状态下直到所有语句执行结束为止。

示例总结

导出整个数据库(表结构与数据,-u表示用户名选项,-p表示密码选项,如果是远程,还有-h表示主机):

$ mysqldump -u root -p openscanner > ~/openscanner.sql

导出整个数据库的表结构(-d选项,全称为--no-data选项,表示不导出数据):

$ mysqldump -u root -p -d openscanner > ~/openscanner.sql

导出整个数据库的数据(不导表结构,选项为-t,全称为 --no-create-info,表示不导出表结构):

$ mysqldump -u root -p -t openscanner > ~/openscanner.sql

导出某两张表:

$ mysqldump -u root -p openscanner wwos_sys_resource wwos_sys_user  
        > ~/openscanner.sql

导出某两张表的表结构:

$ mysqldump -u root -p -d  openscanner wwos_sys_resource wwos_sys_user  
        > ~/openscanner.sql

导出某两张表的数据:

$ mysqldump -u root -p -t openscanner wwos_sys_resource wwos_sys_user  
        > ~/openscanner.sql

mysqldump的更多参数请查看文档!!!

转载于:https://my.oschina.net/fhd/blog/397736

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baomayou.com 版权所有 赣ICP备2024042794号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务