仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 822|回复: 8
打印 上一主题 下一主题

[学习教程] 绝无经由的MySQL中的mysqldump命令利用详解

[复制链接]
蒙在股里 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 20:14:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果你需要额外的功能的话,MySQL的普及性实际上可以让你发现总有一个厂商会提供准确的解决方案,而这个方案会满足你的需要和需求。  MySQL有良多能够导进数据的办法,但是这些只是数据传输中的一半,别的的通常为从MySQL数据库中导出数据。有很多的缘故原由我们必要导出数据。一个主要的缘故原由是用于备份数据库。数据的造价经常是高贵的,必要审慎处置它们。常常地备份能够匡助避免可贵数据地丧失;别的一个缘故原由是,大概您但愿导出数据来共享。在这个信息手艺不休发展的天下中,共享数据变得愈来愈罕见。
例如说MacmillanUSA保护护着一个将要出书的书本的年夜型数据库。这个数据库在很多书店之间共享,如许他们就晓得哪些书将会很快出书。病院愈来愈走向接纳无纸病历纪录,如许这些病历能够随时随着你。天下变得愈来愈小,信息也被共享得愈来愈多。有良多中导出数据得办法,它们都跟导进数据很类似。由于,究竟,这些都只是一种透视得体例。从数据库导出的数据就是从另外一端导进的数据。这里我们其实不会商其他的数据库林林总总的导出数据的办法,您将学会怎样用MySQL来完成数据导出。
  
  利用mysqldump:
  
  (mysqldump命令位于mysql/bin/目次中)
  mysqldump工具良多方面相似相反感化的工具mysqlimport。它们有一些一样的选项。但mysqldump可以做更多的事变。它能够把全部数据库装载到一个独自的文本文件中。这个文件包括有一切重修您的数据库所必要的SQL命令。这个命令获得一切的形式(Schema,前面有注释)而且将其转换成DDL语法(CREATE语句,即数据库界说语句),获得一切的数据,而且从这些数据中创立INSERT语句。这个工具将您的数据库中一切的计划倒转。由于一切的器材都被包括到了一个文本文件中。这个文本文件能够用一个复杂的批处置和一个符合SQL语句导回到MySQL中。这个工具使人难以相信地复杂而疾速。决不会有半点让人头疼地中央。
  
  因而,假如您像装载全部数据库Meet_A_Geek的内容到一个文件中,可使用上面的命令:
  bin/mysqldumpCpMeet_A_Geek>MeetAGeek_Dump_File.txt
  
  这个语句也同意您指定一个表举行dump(备份/导出/装载?)。假如您只是但愿把数据库Meet_A_Geek中的表Orders中的全部内容导出到一个文件,可使用上面的命令:
  bin/mysqldumpCpMeet_A_GeekOrders>MeetAGeek_Orders.txt
  
  这个十分的天真,您乃至可使用WHERE从句来选择您必要的纪录导出到文件中。要到达如许的目标,可使用相似于上面的命令:
  bin/mysqldumpCpCwhere="Order_ID>2000"Meet_A_GeekOrders>Special_Dump.txt
  
  mysqldump工具有大批的选项,部分选项以下表:
  选项/Option感化/ActionPerformed
  --add-drop-table
  这个选项将会在每个表的后面加上DROPTABLEIFEXISTS语句,如许能够包管导回MySQL数据库的时分不会堕落,由于每次导回的时分,城市起首反省表是不是存在,存在就删除
  --add-locks
  这个选项会在INSERT语句中捆上一个LOCKTABLE和UNLOCKTABLE语句。这就避免在这些纪录被再次导进数据库时其他用户对表举行的操纵
  
  -cor-complete_insert
  这个选项使得mysqldump命令给每个发生INSERT语句加上列(field)的名字。当把数据导出导别的一个数据库时这个选项很有效。
  --delayed-insert在INSERT命令中到场DELAY选项
  -For-flush-logs利用这个选项,在实行导出之前将会革新MySQL服务器的log.
  -for-force利用这个选项,即便有毛病产生,仍旧持续导出
  --full这个选项把附加信息也加到CREATETABLE的语句中
  -lor-lock-tables利用这个选项,导出表的时分服务器将会给表加锁。
  -tor-no-create-info
  这个选项使的mysqldump命令不创立CREATETABLE语句,这个选项在您只必要数据而不必要DDL(数据库界说语句)时很便利。
  
  -dor-no-data这个选项使的mysqldump命令不创立INSERT语句。
  在您只必要DDL语句时,可使用这个选项。
  --opt此选项将翻开一切会进步文件导出速率和制造一个能够更快导进的文件的选项。
  -qor-quick这个选项使得MySQL不会把全部导出的内容读进内存再实行导出,而是在读到的时分就写进导文件中。
  -Tpathor-tab=path这个选项将会创立两个文件,一个文件包括DDL语句大概表创立语句,另外一个文件包括数据。DDL文件被定名为table_name.sql,数据文件被定名为table_name.txt.路径名是寄存这两个文件的目次。目次必需已存在,而且命令的利用者有对文件的特权。
  
  -w"WHEREClause"or-where="Whereclause"
  如后面所讲的,您可使用这一选项来过选择将要放到导出文件的数据。
  
  假定您必要为一个表单中要用到的帐号创建一个文件,司理要看往年(2004年)一切的定单(Orders),它们其实不对DDL感乐趣,而且必要文件有逗号分开,由于如许就很简单导进到Excel中。为了完成这团体物,您可使用上面的句子:
  bin/mysqldumpCpCwhere"Order_Date>=2000-01-01"
  Ctab=/home/markCno-create-infoCfields-terminated-by=,Meet_A_GeekOrders
  这将会失掉您想要的了局。
  
  schema:形式
  Thesetofstatements,exPRessedindatadefinitionlanguage,thatcompletelydescribethestructureofadatabase.
  一组以数据界说言语来表达的语句集,该语句集完全地形貌了数据库的布局。
  
  SELECTINTOOUTFILE:
  假如您以为mysqldump工具不敷酷,就利用SELECTINTOOUTFILE吧,MySQL一样供应一个跟LOADDATAINFILE命令有相反感化的命令,这就是SELECTINTOOUTFILE命令,这两个命令有良多的类似的地方。起首,它们有一切的选项几近不异。如今您必要完成后面用mysqldump完成的功效,能够按照上面的步骤举行操纵:
  
  1.确保mysqld历程(服务)已在运转
  2.cd/usr/local/mysql
  3.bin/mysqladminping;//假如这个句子通不外,能够用这个:mysqladmin-uroot-pping
  mysqladminping用于检测mysqld的形态,isalive申明正在运转,堕落则大概必要用户名和暗码。
  4.启动MySQL监听程序.
  5.bin/mysqlCpMeet_A_Geek;//进进mysql命令行,而且翻开数据库Meet_A_Geek,必要输出暗码
  6.在命令行中,输出一下命令:
  SELECT*INTOOUTFILE/home/mark/Orders.txt
  FIELDS
  TERMINATEDBY=,
  FROMOrders
  WHEREOrder_Date>=2000-01-01
  
  在你按了Return(回车)以后,文件就创立了。这个句子就像一个划定规矩的SELECT语句,只是把想屏幕的输入重定向到了文件中。这意味这您可使用JOIN来完成多表的初级查询。这个特性也能够被用作一个报表发生器。
  
  例如说,您能够组合这一章中会商的办法来发生一个十分风趣的查询,尝尝这个:
  
  在mysql目次创建一个名为Report_G.rpt的文本文件,到场上面的行:
  USEMeet_A_Geek;
  INSERTINTOCustomers(Customer_ID,Last_Name,First_Name)
  VALUES(NULL,"Kinnard","Vicky");
  INSERTINTOCustomers(Customer_ID,Last_Name,First_Name)
  VALUES(NULL,"Kinnard","Steven");
  INSERTINTOCustomers(Customer_ID,Last_Name,First_Name)
  VALUES(NULL,"Brown","Sam");
  SELECTLast_NameINTOOUTFILE/home/mark/Report.rpt
  FROMCustomersWHERECustomer_ID>1;
  然后确认mysql历程在运转,而且您在mysql目次中,输出上面的命令:
  bin/mysql<Report_G.rpt反省您定名作为输入的文件,这个文件将会包括一切您在Customers表中输出的主顾的姓。如您所见,您可使用明天学到的导进/导出(import/export)的办法来匡助失掉报表。
MySQL部署迅速,因此移植过程不会导致生产中断。而且,较短的学习曲线可以让你的系统管理员迅速掌握它的运行和维护。而且,MySQL的易于维护和管理意味着目前的职员可以处理目前的工作。
飘飘悠悠 该用户已被删除
沙发
发表于 2015-1-18 19:10:23 | 只看该作者
只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。
柔情似水 该用户已被删除
板凳
发表于 2015-1-18 19:10:23 | 只看该作者
换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的
谁可相欹 该用户已被删除
地板
发表于 2015-1-25 08:39:42 | 只看该作者
需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。
再见西城 该用户已被删除
5#
发表于 2015-2-2 18:40:59 | 只看该作者
是要和操作系统进行Socket通讯的场景。否则建议慎重!
兰色精灵 该用户已被删除
6#
发表于 2015-2-8 04:37:00 | 只看该作者
是要和操作系统进行Socket通讯的场景。否则建议慎重!
不帅 该用户已被删除
7#
发表于 2015-2-24 14:53:37 | 只看该作者
SP4包括用于以下SQLServer2000组件的程序包:Database组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)更新SQLServer2000的32位Database组件,包括数据库引擎、复制、客户端连接组件及工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm。AnalysisServices组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)更新SQLServer2000的32位AnalysisServices。
深爱那片海 该用户已被删除
8#
发表于 2015-3-15 06:29:01 | 只看该作者
换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的
莫相离 该用户已被删除
9#
发表于 2015-3-21 20:46:23 | 只看该作者
记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-4-30 01:26

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表