MySQL金典培训教程:12思考题参考答案_第1页
MySQL金典培训教程:12思考题参考答案_第2页
MySQL金典培训教程:12思考题参考答案_第3页
MySQL金典培训教程:12思考题参考答案_第4页
MySQL金典培训教程:12思考题参考答案_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、思考题参考答案第二章2、在Win32平台上运行分发包中的setup.exe程序,安装MySQL系统后,就自动初始化授权表。对于Uniix平台台,运行行脚本mmysqql_iinsttalll_dbb,之前前应该首首先切换换到启动动myssqldd的用户户,例如如myssql:#su mmysqql$mysqql_iinsttalll_dbb安装授权表表之后修修改rooot用用户的密密码,由由于初始始化后存存在两个个从loocallhosst和任任意主机机连接的的rooot用户户,所以以推荐使使用下面面的办法法:$myssql -u rooot mmysqql(由于于现在不不存在密密码,因因此不

2、比比提供-p选项项)mysqql UPDDATEE usser SETT paasswwordd=paasswwordd(“myppasss”) WWHERRE UUserr=rooot;3、使用如如下命令令更改密密码:shelll mmysqqladdminn -uu rooot -p passswoord newwpasssEnterr Paasswwordd:*出现Entter Passswoord的的提示后后输入原原来的密密码olldpaass即即可。读者可以尝尝试其它它所有本本章介绍绍的方法法。4、首先以以rooot用户户的身份份连接到到服务器器:shelll mmysqql -u

3、rroott -pp Enterr paasswwordd:*出现Entter passswoord提提后输入入rooot用户户的密码码,然后后即进入入myssql客客户机的的交互模模式,可可以看到到下面的的提示:Welcoome to thee MyySQLL moonittor. CCommmandds eend witth ; orr gg.Your MySSQL connnecctioon iid iis 44 too seerveer vverssionn: 33.233.255-beeta-loggType heelp; oor h foor hhelpp. TTypee c to

4、 cleear thee buuffeermysqll然后发布查查询,直直接键入入题目中中的语句句:mysqll SSELEECT Useer,HHostt FRROM myssql.useer;应该有类似似于下面面的结果果:+-+-+| Useer | HHostt |+-+-+| rooot | % | admmin | llocaalhoost | rooot | llocaalhoost |+-+-+5、在全局局选项文文件(UUnixx上位于于/ettc/mmy.ccnf,WWinddowss上位于于c:ff)中加加入下面面的几行行:mysqqluser=roootpasswwordd

5、然后在运行行myssql客客户程序序,就不不必提供供参数:shelll mmysqqlEnterr Paasswwordd:*你可以查看看当前的的连接,以以确定是是否是如如此:mysqll SSHOWW PRROCEESSLLISTT;+-+-+-+-+-+-+-+-+| Id | UUserr | Hosst | db | Coommaand | TTimee | Staate | IInfoo |+-+-+-+-+-+-+-+-+| 4 | rroott | loccalhhostt | NULLL | Quueryy | 00 | NULLL | SSHOWW PRROCEESSLLIS

6、TT |+-+-+-+-+-+-+-+-+第三章2、连接服服务器的的命令为为:shelllmmysqql -h t -u rroott -pp teestEnteer PPasssworrd:*如果使用选选项文件件,将下下面几行行加入全全局选项项文件中中:myssqlhostt=daatabbasee.hoorstt.zooo.nnetuserr=roootpasssworrd然后可以直直接运行行myssql,不不比提供供连接参参数:shelll myssqlEnteer PPasssworrd:*3、创建表表的语句句为:CREAATE TABBLE pett(namme CCHARR(300

7、),ownner CHAAR(330),speeciees CCHARR(100),sexx ENNUM(“M”,”F”) NNOT NULLL,birrth DATTE,deaath DATTE)4、如下录录入文件件pett.txxt,段段与段用用制表符符分隔FlufffyHarrolddcattF19993-002-004NClawssGweencattM19994-003-117NBuffyyHarroldddoggF19889-005-113NChirppyGweenbirrdF19998-009-111NFangBennnydoggM19990-008-227NBowseerDiaa

8、nedoggM19990007-229WhisttlerrGweenbirrdN19997-112-009NSlimBennnysnaakeM19996-004-229NPuffbballlDiaanehammsteerF19999-003-330N 然后连接服服务器,发发布查询询:mysqll LLOADD DAATA INFFILEE“pett.txxt” INNTO TABBLE pett;由于缺省时时,LOOAD DATTA 语语句以特特殊字符符n作为记记录的结结束,这这和Unnix系系统的文文本编辑辑器以n为换行行符是一一致的,但但是在WWinddowss

9、系统中中,换行行符是rn,因此此,如果果是在WWinddowss系统编编辑的文文件,那那么上面面的语句句不能成成功的录录入数据据,要做做如下的的修改:mysqll LLOADD DAATA INFFILEE “pett.txxt” INNTO TABBLE pett- LLINEES TTERMMINAATEDD BYY rn;如果使用mmysqqlimmporrt程序序,相应应的命令令行为:shelll mmysqqlimmporrt ttestt pett.ttt或者使用:shelll mmysqqlimmporrt ttestt pett.ttt-llinees-ttermminaate

10、dd-byy=rnn第四章创建表:mysqll CCREAATE TABBLE ex44 - ( - ddataa FLLOATT, - bbirtth DDATEETIMME - );录入数据:mysqll IINSEERT ex44 VAALUEES(RRANDD(),NOWW();多录入几个个数据,现现有的数数据为:mysqll sseleect * ffromm exx4;+-+-+| datta | bbirtth |+-+-+| 0.88303329 | 220011-011-011 211:211:100 | 0.55311143 | 220011-011-011 211:211

11、:122 | 0.11647729 | 220011-011-011 211:211:133 | 0.22302213 | 220011-011-011 211:211:144 |+-+-+data列列的平均均值:mysqll SSELEECT AVGG(daata) ASS avveraage FROOM eex4;+-+| aveeragge |+-+| 0.4439110377784451668 |+-+dataa列的总总和:mysqll SSELEECT SUMM(daata) ASS ssum of datta FROOM eex4;+-+| summ off daata |+-+|

12、 1.775644151113880677 |+-+mysqll SSELEECT MAXX(daata) ASS mmax of datta,MINN(daata) ASS mmin of datta- FRROM ex44;+-+-+| maxx off daata | miin oof ddataa |+-+-+| 0.8830332944777787002 | 0.164472887455818814 |+-+-+dataa列降序序排列:mysqll SSELEECT * FFROMM exx4 OORDEER BBY ddataa DEESC;+-+-+| datta | bbirt

13、th |+-+-+| 0.88303329 | 220011-022-188 211:211:100 | 0.55311143 | 220011-022-188 211:211:122 | 0.22302213 | 220011-022-188 211:211:144 | 0.11647729 | 220011-022-188 211:211:133 |+-+-+使用标准SSQL模模式匹配配:mysqll sseleect * ffromm exx4 wwherre bbirtth llikee 220011-011-011%;+-+-+| datta | bbirtth |+-+-+| 0.

14、88303329 | 220011-011-011 211:211:100 | 0.55311143 | 220011-011-011 211:211:122 | 0.11647729 | 220011-011-011 211:211:133 | 0.22302213 | 220011-011-011 211:211:144 |+-+-+使用扩张张正则表表达式模模式匹配配:mysqll sseleect * ffromm exx4 wwherre bbirtth RREGEEXP 220011-011-011;+-+-+| datta | bbirtth |+-+-+| 0.88303329

15、| 220011-011-011 211:211:100 | 0.55311143 | 220011-011-011 211:211:122 | 0.11647729 | 220011-011-011 211:211:133 | 0.22302213 | 220011-011-011 211:211:144 |+-+-+为studdentt表创建建索引:mysqll AALTEER TTABLLE sstuddentt - ADDD PPRIMMARYY KEEY(iid),- ADDD IINDEEX mmarkk(enngliish,chiinesse,hhisttoryy);这样查看创创

16、建的索索引:mysqll SSHOWW INNDEXX FRROM stuudennt;+-+-+-+-+-+-| Tabble | Noon_uuniqque | KKey_namme | Seeq_iin_iindeex | Coolummn_nnamee |.+-+-+-+-+-+-| stuudennt | 0 | PPRIMMARYY | 1 | idd |.| stuudennt | 1 | mmarkk | 1 | enngliish |.| stuudennt | 1 | mmarkk | 2 | chhineese |.| stuudennt | 1 | mmarkk | 3

17、 | hiistoory |.+-+-+-+-+-+-为pet表表创建索索引,这这次使用用另一种种方法:mysqll CCREAATE INDDEX namme OON ppet (naame(10),owwnerr(100);查看创建建的索引引的情况况:mysqql SHOOW IINDEEX FFROMM peet;+-+-+-+-+-+-| Tabble | NNon_uniiquee | Keyy_naame | SSeq_in_inddex | CColuumn_namme |.+-+-+-+-+-+-| pett | 11 | namme | 1 | nnamee |.| pett

18、 | 11 | namme | 2 | oowneer |.+-+-+-+-+-+-4、删除ppet表表的索引引:mysqql DROOP IINDEEX nnamee ONN peet;或者可以以:mysqll AALTEER TTABLLE ppet DROOP IINDEEX nnamee; 然后再用SSHOWW语句产产看可知知mysqll sshoww inndexx frrom pett;Emptyy seet (0.001 ssec)第五章shelll mmysqqlduump -aall-dattabaase -oopt ddataa.sqqlshelll mmysqqlduum

19、p -ttab=”./bbak” teest创建数据库库tesst1mysqll CCREAATE DATTABAASE tesst1;恢复表的结结构shelll mmysqql ttestt1 mmysqqlimmporrt ttestt1 ./baak/ppet.txtt在Win332平台台上,你你必须一一个个的的恢复文文件,在在Uniix平台台上,可可以通过过sheell的的文件匹匹配的功功能,简简化命令令行:$myssql tesst1 IINSEERT pett SEET nnamee=ttes;mysqll DDELEETE FROOM ppet WHEERE namme=tess

20、;相应的在更更新日志志中增加加的记录录为:use ttestt;INSERRT ppet SETT naame=tees;DELETTE FFROMM peet WWHERRE nnamee=ttes;然后我们删删除teest11数据库库:mysqll ddropp daatabbasee teest110;相应的更新新日志中中的内容容为:drop dattabaase tesst100;为了恢复数数据库,假假设更新新日志的的文件名名是wxxy.0058,假假定该日日志包括括第四题题中更新新日志的的内容。首先删除更更新日志志中删除除数据库库的记录录,然后后用下面面的语句句恢复数数据库表表:sh

21、elll mmysqql -onne-ddataabsee teest11LOOCK TABBLE pett REEAD;清空缓存:mysqllFLLUSHH TAABLEES;检查表:shelll mmyissamcchk /paath/to/pett (在在我的主主机上,为为./datta/ttestt/peet)释放表锁mysqllUNNLOCCK TTABLLES;2、创建数数据库的的方法是是:mysqll CCREAATE DATTABAASE tesst2;mysqll CCREAATE TABBLE pett SEELECCT * FRROM teest.pett;恢复数据库库的

22、方法法是:由于表的描描述文件件被删除除,因此此我们可可以创建建一个具具有相同同结构的的表:mysqll CCREAATE TABBLE pett1();为了节省时时间,由由于本题题只是一一个演示示,所以以你还可可以从ttestt.peet中恢恢复表的的结构:mysqll CCREAATE TABBLE pett1 SSELEECT * FFROMM teest.pett WHHEREE 0;然后,进入入数据库库目录,把把pett1.ffrm文文件复制制为peet.ffrm文文件,完完成操作作即可。3、备份过过程在正正文中有有详细叙叙述。此此处略。第七章1、原因是是: 先考虑一下下myssql_

23、insstalll_ddb如何何建立初初始权限限表和服服务器如如何使用用useer表记记录匹配配客户连连接。在在你用mmysqql_iinsttalll_dbb初始化化你的数数据库时时,它创创建类似似这样的的useer表:HostUUserr locallhossthorstt.zooo.nnetlocallhossthorstt.zooo.nnet roootroot头两个记录录允许rroott指定llocaalhoost或或主机名名连接本本地服务务器,后后两个允允许匿名名用户从从本地连连接。当当增加ffox用用户后,Host Useer locallhossthorstt.zooo.nne

24、tlocallhossthorstt.zooo.nnet%.zooo.neetroootrootfox 在服务器启启动时,它它读取记记录并排排序它们们(首先先按主机机,然后后按主机机上的用用户),越越具体越越排在前前面:Host Useer locallhosstlocallhossthorstt.zooo.nnethorstt.zooo.nnet%.zooo.neetroootrootfox 有locaalhoost的的两个记记录排在在一起,而而对rooot的的记录排排在第一一,因为为它比空空值更具具体。t的记录录也类似似。所有有这些均均是没有有任何通通配符的的字面上上的Hoost值值,所以

25、以它们排排在对ffox记记录的前前面,特特别是匿匿名用户户排在ffox之之前。结果是在ffox试试图从llocaalhoost连连接时,HHostt列中的的一个空空用户名名的记录录在包含含%.ssnakke.nnet的的记录前前匹配。该该记录的的口令是是空的,因因为缺省省的匿名名用户没没有口令令。因为为在foox连接接时指定定了一个个口令,由由一个错错配且连连接失败败。这里要记住住的是,虽虽然用通通配符指指定用户户可以从从其连接接的主机机是很方方便。但但你从本本地主机机连接时时会有问问题,只只要你在在tabble表表中保留留匿名用用户记录录。一般地,建建议你删删除匿名名用户记记录:mysqll

26、 DDELEETE FROOM uuserr WHHEREE Usser=;更进一步,同同时删除除其他授授权表中中的任何何匿名用用户,有有Useer列的的表有ddb、ttablles_priiv和ccoluumnss_prriv。2、应该给给用户分分配全局局的REELOAAD、SSHUTTDOWWN权限限,使用用GRAANT语语句:mysqll GGRANNT RRELOOAD,SHUUTDOOWN ON *.* TOO addminnloocallhosst - INNDENNTIFFIEDD BYY “myppasss”;使用直接修修改授权权表的方方法:mysqll IINSEERT my

27、ssql.useer(UUserr,Hoost,Passswoord,Relloadd_prriv,Shuutdoown_priiv)- VALLUESS(“amiin”,”loccalhhostt”,PAASSWWORDD(“myppasss”),YY,Y);3、由于该该用户只只在usser表表中有权权限记录录,所以以只要删删除该记记录即可可:myssql DEELETTE FFROMM myysqll.usser WHEERE Useer=”admmin”;4、创建建数据库库myssql CRREATTE DDATAABASSE mmarkk;创建用用户并授授权:mysqll GGRANNT SSELEECT,DROOP,CCREAA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论