MySQL數(shù)據(jù)庫(kù)技術(shù)(第3版)課件 單元9 數(shù)據(jù)庫(kù)管理_第1頁(yè)
MySQL數(shù)據(jù)庫(kù)技術(shù)(第3版)課件 單元9 數(shù)據(jù)庫(kù)管理_第2頁(yè)
MySQL數(shù)據(jù)庫(kù)技術(shù)(第3版)課件 單元9 數(shù)據(jù)庫(kù)管理_第3頁(yè)
MySQL數(shù)據(jù)庫(kù)技術(shù)(第3版)課件 單元9 數(shù)據(jù)庫(kù)管理_第4頁(yè)
MySQL數(shù)據(jù)庫(kù)技術(shù)(第3版)課件 單元9 數(shù)據(jù)庫(kù)管理_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

單元9數(shù)據(jù)庫(kù)管理項(xiàng)目知識(shí)要點(diǎn)與目標(biāo)項(xiàng)目知識(shí)要點(diǎn)知識(shí)能力目標(biāo)學(xué)時(shí)任務(wù)1用戶(hù)和數(shù)據(jù)安全性1添加和刪除用戶(hù)2授予權(quán)限和回收權(quán)限任務(wù)2備份與恢復(fù)1備份和恢復(fù)需求分析2數(shù)據(jù)庫(kù)備份和恢復(fù)3MySQL日志任務(wù)3事務(wù)和鎖1事務(wù)處理2事務(wù)隔離機(jī)制3鎖機(jī)制【典型工作任務(wù)】

數(shù)據(jù)庫(kù)日常管理【技能要求】1用戶(hù)賬戶(hù)管理2角色管理3權(quán)限管理4數(shù)據(jù)備份與恢復(fù)【知識(shí)要求】:1數(shù)據(jù)庫(kù)用戶(hù)賬戶(hù)設(shè)置和管理2權(quán)限的合理分配與收回

3理解事務(wù)和鎖機(jī)制4項(xiàng)目實(shí)訓(xùn)“員工管理系統(tǒng)”數(shù)據(jù)庫(kù)管理2用戶(hù)和數(shù)據(jù)安全性用戶(hù)要訪問(wèn)MySQL數(shù)據(jù)庫(kù),首先必須擁有登錄到MySQL服務(wù)器的用戶(hù)名和口令。登錄到服務(wù)器后,MySQL允許用戶(hù)在其權(quán)限內(nèi)使用數(shù)據(jù)庫(kù)資源。MySQL的安全系統(tǒng)很靈活,它允許以多種不同的方式創(chuàng)建用戶(hù)和設(shè)置用戶(hù)權(quán)限。可以使用CREATEUSER語(yǔ)法添加一個(gè)或多個(gè)用戶(hù),并設(shè)置相應(yīng)的密碼。語(yǔ)法格式:CREATEUSER用戶(hù)名[IDENTIFIEDBY'密碼']

用戶(hù)名的格式為:用戶(hù)名稱(chēng)@主機(jī)名。CREATEUSER用于創(chuàng)建新的MySQL賬戶(hù)。CREATEUSER會(huì)在系統(tǒng)本身的mysql數(shù)據(jù)庫(kù)的user表中添加一個(gè)新記錄。要使用CREATEUSER,必須擁有mysql數(shù)據(jù)庫(kù)的全局CREATEUSER權(quán)限或INSERT權(quán)限。如果賬戶(hù)已經(jīng)存在,則出現(xiàn)錯(cuò)誤。添加用戶(hù)舉例【例】添加兩個(gè)新的用戶(hù),king的密碼為queen,palo的密碼為530415CREATEUSER'king'@'localhost'IDENTIFIEDBY'queen','palo'@'localhost'IDENTIFIEDBY'530415‘;在用戶(hù)名的后面聲明了關(guān)鍵字localhost。這個(gè)關(guān)鍵字指定了用戶(hù)創(chuàng)建的使用MySQL的連接所來(lái)自的主機(jī)。如果一個(gè)用戶(hù)名和主機(jī)名中包含特殊符號(hào)如“_”,或通配符如“%”,則需要用單引號(hào)將其括起?!?”表示一組主機(jī)。如果兩個(gè)用戶(hù)具有相同的用戶(hù)名但主機(jī)不同,MySQL將其視為不同的用戶(hù),允許為這兩個(gè)用戶(hù)分配不同的權(quán)限集合。如果沒(méi)有輸入密碼,那么MySQL允許相關(guān)的用戶(hù)不使用密碼登錄。但是從安全的角度并不推薦這種做法。剛剛創(chuàng)建的用戶(hù)還沒(méi)有很多權(quán)限。它們可以登錄到MySQL,但是它們不能使用USE語(yǔ)句來(lái)讓用戶(hù)已經(jīng)創(chuàng)建的任何數(shù)據(jù)庫(kù)成為當(dāng)前數(shù)據(jù)庫(kù),因此,它們無(wú)法訪問(wèn)那些數(shù)據(jù)庫(kù)的表,只允許進(jìn)行不需要權(quán)限的操作,例如,用一條SHOW語(yǔ)句查詢(xún)所有存儲(chǔ)引擎和字符集的列表。用戶(hù)的修改與刪除刪除用戶(hù)語(yǔ)法格式:DROPUSERuserDROPUSER語(yǔ)句用于刪除一個(gè)或多個(gè)MySQL賬戶(hù),并取消其權(quán)限。要使用DROPUSER,必須擁有mysql數(shù)據(jù)庫(kù)的全局CREATEUSER權(quán)限或DELETE權(quán)限?!纠縿h除用戶(hù)king。

DROPUSERking@localhost;如果刪除的用戶(hù)已經(jīng)創(chuàng)建了表、索引或其他的數(shù)據(jù)庫(kù)對(duì)象,它們將繼續(xù)保留,因?yàn)镸ySQL并沒(méi)有記錄是誰(shuí)創(chuàng)建了這些對(duì)象。可以使用RENAMEUSER語(yǔ)句來(lái)修改一個(gè)已經(jīng)存在的SQL用戶(hù)的名字。語(yǔ)法格式:

RENAMEUSER

old_user

TOnew_user【例】將用戶(hù)palo修改為ken。RENAMEUSER‘palo’@‘localhost’TO‘ken’@‘localhost’;若要將命令立即生效,可用命令:Flushprivileges;修改密碼要修改某個(gè)用戶(hù)的登錄密碼,可以使用SETPASSWORD語(yǔ)句。語(yǔ)法格式:

SETPASSWORD

[FOR用戶(hù)名]=

'密碼'如果不加FOR

用戶(hù)名,表示修改當(dāng)前用戶(hù)的密碼。加了則是修改當(dāng)前主機(jī)上的特定用戶(hù)的密碼。用戶(hù)名的值必須以‘用戶(hù)名稱(chēng)’@‘主機(jī)名'的格式給定?!纠繉⒂脩?hù)ken的密碼修改為queen。

SETPASSWORDFOR'ken'@'localhost'='queen';授予權(quán)限新的SQL用戶(hù)不允許訪問(wèn)屬于其他SQL用戶(hù)的表,也不能立即創(chuàng)建自己的表,它必須被授權(quán)。可以授予的權(quán)限有以下幾組。(1)列權(quán)限:和表中的一個(gè)具體列相關(guān)。(2)表權(quán)限:和一個(gè)具體表中的所有數(shù)據(jù)相關(guān)。(3)數(shù)據(jù)庫(kù)權(quán)限:和一個(gè)具體的數(shù)據(jù)庫(kù)中的所有表相關(guān)。(4)用戶(hù)權(quán)限:和MySQL所有的數(shù)據(jù)庫(kù)相關(guān)。給某用戶(hù)授予權(quán)限可以使用GRANT語(yǔ)句。使用SHOWGRANTS語(yǔ)句可以查看當(dāng)前賬戶(hù)擁有什么權(quán)限。GRANT語(yǔ)法格式:GRANT權(quán)限1[(列名列表1)][,權(quán)限2[(列名列表2)]]...ON[目標(biāo)]{表名|*|*.*|庫(kù)名.*}TO用戶(hù)1[IDENTIFIEDBY[PASSWORD]'密碼1'][,用戶(hù)2[IDENTIFIEDBY[PASSWORD]'密碼2']]...[WITH權(quán)限限制1[權(quán)限限制2]...]授予權(quán)限舉例【例】授予用戶(hù)user1在Book表上的SELECT權(quán)限。USEBookstore;GRANTSELECTONBookTOuser1@localhost;

若在TO子句中給存在的用戶(hù)指定密碼,則新密碼將原密碼覆蓋。如果權(quán)限授予了一個(gè)不存在的用戶(hù),MySQL會(huì)自動(dòng)執(zhí)行一條CREATEUSER語(yǔ)句來(lái)創(chuàng)建這個(gè)用戶(hù),但必須為該用戶(hù)指定密碼?!纠渴谟鑥ser1在Book表上的圖書(shū)編號(hào)列和書(shū)名列的UPDATE權(quán)限。

GRANTUPDATE(圖書(shū)編號(hào),書(shū)名) ONBook TOuser1@localhost;授予數(shù)據(jù)庫(kù)權(quán)限(2)授予數(shù)據(jù)庫(kù)權(quán)限在GRANT語(yǔ)法格式中,授予數(shù)據(jù)庫(kù)權(quán)限時(shí)ON關(guān)鍵字后面跟“*”和“庫(kù)名.*”?!?”表示當(dāng)前數(shù)據(jù)庫(kù)中的所有表;“庫(kù)名.*”表示某個(gè)數(shù)據(jù)庫(kù)中的所有表。【例】授予user1在Bookstore數(shù)據(jù)庫(kù)中的所有表的SELECT權(quán)限。

GRANTSELECTONBookstore.*TOuser1@localhost;這個(gè)權(quán)限適用于所有已有的表,以及此后添加到Bookstore數(shù)據(jù)庫(kù)中的任何表?!纠渴谟鑥ser1在Bookstore數(shù)據(jù)庫(kù)中擁有所有的數(shù)據(jù)庫(kù)權(quán)限。USEBookstore;GRANTALLON*TOuser1@localhost;授予用戶(hù)權(quán)限(3)授予用戶(hù)權(quán)限最有效率的權(quán)限就是用戶(hù)權(quán)限,對(duì)于需要授予數(shù)據(jù)庫(kù)權(quán)限的所有語(yǔ)句,也可以定義在用戶(hù)權(quán)限上。例如,在用戶(hù)級(jí)別上授予某人CREATE權(quán)限,這個(gè)用戶(hù)可以創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù),也可以在所有的數(shù)據(jù)庫(kù)(而不是特定的數(shù)據(jù)庫(kù))中創(chuàng)建新表。MySQL授予用戶(hù)權(quán)限時(shí)priv_type還可以是以下值。●CREATEUSER:給予用戶(hù)創(chuàng)建和刪除新用戶(hù)的權(quán)力?!馭HOWDATABASES:給予用戶(hù)使用SHOWDATABASES語(yǔ)句查看所有已有的數(shù)據(jù)庫(kù)的定義的權(quán)利。在GRANT語(yǔ)法格式中,授予用戶(hù)權(quán)限時(shí)ON子句中使用“*.*”,表示所有數(shù)據(jù)庫(kù)的所有表?!纠渴谟鑀eter對(duì)所有數(shù)據(jù)庫(kù)中的所有表的CREATE、ALTERT和DROP權(quán)限。GRANTCREATE,ALTER,DROPON*.*TOPeter@localhostIDENTIFIEDBY'ppwd';【例】授予Peter創(chuàng)建新用戶(hù)的權(quán)力。GRANTCREATEUSERON*.*TOPeter@localhost;權(quán)限的轉(zhuǎn)移和限制GRANT語(yǔ)句的最后可以使用WITH子句。如果指定為WITHGRANTOPTION,則表示TO子句中指定的所有用戶(hù)都有把自己所擁有的權(quán)限授予其他用戶(hù)的權(quán)利,而不管其他用戶(hù)是否擁有該權(quán)限?!纠?.11】授予user3在Book表上的SELECT權(quán)限,并允許其將該權(quán)限授予其他用戶(hù)。首先在root用戶(hù)下授予user3用戶(hù)SELECT權(quán)限:

GRANTSELECTONBookstore.BookTOuser3@localhostIDENTIFIEDBY'123456'WITHGRANTOPTION;接著,以u(píng)ser3用戶(hù)身份登錄MySQL,登錄后,user3用戶(hù)只有查詢(xún)Bookstore數(shù)據(jù)庫(kù)中Book表的權(quán)利,它可以把這個(gè)權(quán)限傳遞給其他用戶(hù)(這里假設(shè)用戶(hù)Jim已經(jīng)創(chuàng)建):GRANTSELECTONBookstore.BookTOJim@localhost;權(quán)限的限制WITH子句也可以對(duì)一個(gè)用戶(hù)授予使用限制,其中,MAX_QUERIES_PER_HOUR次數(shù)表示每小時(shí)可以查詢(xún)數(shù)據(jù)庫(kù)的次數(shù);MAX_CONNECTIONS_PER_HOUR次數(shù)

表示每小時(shí)可以連接數(shù)據(jù)庫(kù)的次數(shù);MAX_UPDATES_PER_HOUR次數(shù)表示每小時(shí)可以修改數(shù)據(jù)庫(kù)的次數(shù)。MAX_USER_CONNECTIONS次數(shù)表示同時(shí)連接MySQL的最大用戶(hù)數(shù)。次數(shù)是一個(gè)數(shù)值,對(duì)于前三個(gè)指定,次數(shù)如果為0則表示不起限制作用?!纠渴谟鐹im每小時(shí)只能處理一條SELECT語(yǔ)句的權(quán)限。GRANTSELECTONBookTOJim@localhostWITHMAX_QUERIES_PER_HOUR1;

回收權(quán)限要從一個(gè)用戶(hù)回收權(quán)限,但不從USER表中刪除該用戶(hù),可以使用REVOKE語(yǔ)句,這條語(yǔ)句和GRANT語(yǔ)句格式相似,但具有相反的效果。要使用REVOKE,用戶(hù)必須擁有mysql數(shù)據(jù)庫(kù)的全局CREATEUSER權(quán)限或UPDATE權(quán)限。用來(lái)回收某些特定的權(quán)限語(yǔ)法格式:REVOKE權(quán)限1[(列名列表1)][,權(quán)限2[(列名列表2)]]...ON{表名|*|*.*|庫(kù)名.*}FROM用戶(hù)1[,用戶(hù)2]...回收所有該用戶(hù)的權(quán)限語(yǔ)法格式:REVOKEALLPRIVILEGES,GRANTOPTIONFROM用戶(hù)名【例】回收用戶(hù)user3在Book表上的SELECT權(quán)限。

REVOKESELECTONBookFROMuser3@localhost;備份與恢復(fù)備份和恢復(fù)需求分析數(shù)據(jù)庫(kù)中的數(shù)據(jù)丟失或被破壞可能是由于以下原因:(1)計(jì)算機(jī)硬件故障。由于使用不當(dāng)或產(chǎn)品質(zhì)量等原因,計(jì)算機(jī)硬件可能會(huì)出現(xiàn)故障,不能使用。如硬盤(pán)損壞會(huì)使得存儲(chǔ)于其上的數(shù)據(jù)丟失。(2)軟件故障。由于軟件設(shè)計(jì)上的失誤或用戶(hù)使用的不當(dāng),軟件系統(tǒng)可能會(huì)誤操作數(shù)據(jù)引起數(shù)據(jù)破壞。(3)病毒。破壞性病毒會(huì)破壞系統(tǒng)軟件、硬件和數(shù)據(jù)。(4)誤操作。如用戶(hù)誤使用了諸如DELETE、UPDATE等命令而引起數(shù)據(jù)丟失或破壞。(5)自然災(zāi)害。如火災(zāi)、洪水或地震等,它們會(huì)造成極大的破壞,會(huì)毀壞計(jì)算機(jī)系統(tǒng)及其數(shù)據(jù)。(6)盜竊。一些重要數(shù)據(jù)可能會(huì)遭竊。因此,必須制作數(shù)據(jù)庫(kù)的復(fù)本,即進(jìn)行數(shù)據(jù)庫(kù)備份,在數(shù)據(jù)庫(kù)遭到破壞時(shí)能夠修復(fù)數(shù)據(jù)庫(kù),即進(jìn)行數(shù)據(jù)庫(kù)恢復(fù),數(shù)據(jù)庫(kù)恢復(fù)就是把數(shù)據(jù)庫(kù)從錯(cuò)誤狀態(tài)恢復(fù)到某一正確狀態(tài)。備份和恢復(fù)數(shù)據(jù)庫(kù)也可以用于其他目的,如可以通過(guò)備份與恢復(fù)將數(shù)據(jù)庫(kù)從一個(gè)服務(wù)器移動(dòng)或復(fù)制到另一個(gè)服務(wù)器。MySQL數(shù)據(jù)庫(kù)備份有多種可能會(huì)導(dǎo)致數(shù)據(jù)表的丟失或者服務(wù)器的崩潰,一個(gè)簡(jiǎn)單的DROPTABLE或者DROPDATABASE的語(yǔ)句,就會(huì)讓數(shù)據(jù)表化為烏有。更危險(xiǎn)的是DELETE*FROMtable_name,可以輕易地清空數(shù)據(jù)表,而這樣的錯(cuò)誤是很容易發(fā)生的。因此,擁有能夠恢復(fù)的數(shù)據(jù)對(duì)于一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)來(lái)說(shuō)是非常重要的。MySQL有三種保證數(shù)據(jù)安全的方法。(1)數(shù)據(jù)庫(kù)備份:通過(guò)導(dǎo)出數(shù)據(jù)或者表文件的拷貝來(lái)保護(hù)數(shù)據(jù)。(2)二進(jìn)制日志文件:保存更新數(shù)據(jù)的所有語(yǔ)句。(3)數(shù)據(jù)庫(kù)復(fù)制:MySQL內(nèi)部復(fù)制功能建立在兩個(gè)或兩個(gè)以上服務(wù)器之間,通過(guò)設(shè)定它們之間的主從關(guān)系來(lái)實(shí)現(xiàn)的。其中一個(gè)作為主服務(wù)器,其他的作為從服務(wù)器。本章主要介紹前兩種方法。數(shù)據(jù)庫(kù)恢復(fù)就是當(dāng)數(shù)據(jù)庫(kù)出現(xiàn)故障時(shí),將備份的數(shù)據(jù)庫(kù)加載到系統(tǒng),從而使數(shù)據(jù)庫(kù)恢復(fù)到備份時(shí)的正確狀態(tài)?;謴?fù)是與備份相對(duì)應(yīng)的系統(tǒng)維護(hù)和管理操作,系統(tǒng)進(jìn)行恢復(fù)操作時(shí),先執(zhí)行一些系統(tǒng)安全性的檢查,包括檢查所要恢復(fù)的數(shù)據(jù)庫(kù)是否存在、數(shù)據(jù)庫(kù)是否變化及數(shù)據(jù)庫(kù)文件是否兼容等,然后根據(jù)所采用的數(shù)據(jù)庫(kù)備份類(lèi)型采取相應(yīng)的恢復(fù)措施。數(shù)據(jù)庫(kù)備份SQL語(yǔ)句用戶(hù)可以使用SELECTINTO…OUTFILE語(yǔ)句把表數(shù)據(jù)導(dǎo)出到一個(gè)文本文件中,并用LOADDATA…INFILE語(yǔ)句恢復(fù)數(shù)據(jù)。SELECT*INTOOUTFILE'文件名'輸出選項(xiàng) |DUMPFILE'文件名'其中,輸出選項(xiàng)為:[FIELDS[TERMINATEDBY'string'][[OPTIONALLY]ENCLOSEDBY'char'][ESCAPEDBY'char']][LINESTERMINATEDBY'string']但是這種方法只能導(dǎo)出或?qū)霐?shù)據(jù)的內(nèi)容,不包括表的結(jié)構(gòu),如果表的結(jié)構(gòu)文件損壞,則必須先恢復(fù)原來(lái)的表的結(jié)構(gòu)。LOADDATA…INFILE語(yǔ)句是SELECTINTO…OUTFILE語(yǔ)句的補(bǔ)語(yǔ),該語(yǔ)句可以將一個(gè)文件中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)中。LOADDATAINFILE'文件名.txt'INTOTABLE表名[FIELDS[TERMINATEDBY'string'][[OPTIONALLY]ENCLOSEDBY'char'][ESCAPEDBY'char']][LINES[STARTINGBY'string'][TERMINATEDBY'string']]數(shù)據(jù)恢復(fù)SQL語(yǔ)句【例】備份Bookstore數(shù)據(jù)庫(kù)中的Members表中數(shù)據(jù)到D盤(pán)myfile1.txt數(shù)據(jù)格式采用系統(tǒng)默認(rèn)。首先導(dǎo)出數(shù)據(jù):USEBookstore;SELECT*FROMMembersINTOOUTFILE'D:/myfile1.txt‘;

導(dǎo)出成功后可以查看D盤(pán)FILE文件夾下的myfile1.txt文件?!纠课募浞萃旰罂梢詫⑽募械臄?shù)據(jù)導(dǎo)入到member_copy表。先創(chuàng)建member_copy表結(jié)構(gòu):CREATETABLEmember_copyLIKEmembers;

然后使用LOADDATA命令將D盤(pán)myfile1.txt中數(shù)據(jù)恢復(fù)到Bookstore數(shù)據(jù)庫(kù)的Member_copy表中。

LOADDATAINFILE'D:/myfile1.txt' INTOTABLEmember_copy;數(shù)據(jù)備份與恢復(fù)SQL語(yǔ)句舉例【例】備份Bookstore數(shù)據(jù)庫(kù)中的Members表中數(shù)據(jù)到D盤(pán)FILE目錄中,要求字段值如果是字符就用雙引號(hào)標(biāo)注,字段值之間用逗號(hào)隔開(kāi),每行以“?”為結(jié)束標(biāo)志。

USEBookstore;SELECT*FROMMembers INTOOUTFILE'D:/myfile2.txt' FIELDSTERMINATEDBY',' OPTIONALLYENCLOSEDBY'"' LINESTERMINATEDBY'?‘;數(shù)據(jù)備份與恢復(fù)SQL語(yǔ)句舉例【例】將D盤(pán)myfile1.txt中數(shù)據(jù)恢復(fù)到Bookstore數(shù)據(jù)庫(kù)的Member_copy1表中。

先創(chuàng)建member_copy1表結(jié)構(gòu):CREATETABLEmember_copy1LIKEmembers;

然后使用LOADDATA命令將D盤(pán)myfile1.txt中數(shù)據(jù)恢復(fù)到Bookstore數(shù)據(jù)庫(kù)的Member_copy1表中。LOADDATAINFILE'D:/myfile1.txt' INTOTABLEmember_copy1 FIELDSTERMINATEDBY',' OPTIONALLYENCLOSEDBY'"' LINESTERMINATEDBY'?';數(shù)據(jù)備份與恢復(fù)SQL語(yǔ)句舉例日志文件啟用日志二進(jìn)制日志可以在啟動(dòng)服務(wù)器的時(shí)候啟用,這需要修改C:\ProgramFiles\MySQL文件夾中的my.ini選項(xiàng)文件。打開(kāi)該文件,找到[mysqld]所在行,在該行后面加上以下格式的一行:log-bin[=filename]假設(shè)這里filename取名為bin_log。若不指定目錄,則在MySQL的data目錄下自動(dòng)創(chuàng)建二進(jìn)制日志文件。若日志路徑指定為C:/appserv/MySQL/bin目錄,添加以下一行:log-bin=C:/appserv/MySQL/bin/bin_log保存,重啟服務(wù)器。日志文件記入文件中的信息類(lèi)型錯(cuò)誤日志記錄啟動(dòng)、運(yùn)行或停止mysqld時(shí)出現(xiàn)的問(wèn)題。查詢(xún)?nèi)罩居涗浗⒌目蛻?hù)端連接和執(zhí)行的語(yǔ)句。更新日志記錄更改數(shù)據(jù)的語(yǔ)句。不贊成使用該日志。二進(jìn)制日志記錄所有更改數(shù)據(jù)的語(yǔ)句。還用于復(fù)制。慢日志記錄所有執(zhí)行時(shí)間超long_query_time秒的所有查詢(xún)或不使用索引的查詢(xún)MySQL日志文件類(lèi)型用mysqlbinlog管理日志使用mysqlbinlog實(shí)用工具(在windows命令行窗口運(yùn)行)可以檢查二進(jìn)制日志文件。命令格式為:

mysqlbinlog[options]日志文件名說(shuō)明:日志文件名是二進(jìn)制日志的文件名。例如,運(yùn)行以下命令可以查看bin_log.000001的內(nèi)容:mysqlbinlogbin_log.000001由于二進(jìn)制數(shù)據(jù)可能非常龐大,無(wú)法在屏幕上延伸,可以保存到文本文件中:mysqlbinlogbin_log.000001>D:/lbin-log000001.txt使用日志恢復(fù)數(shù)據(jù)的命令格式如下:mysqlbinlog[options]日志文件名|mysql[options]日志管理舉例【例】數(shù)據(jù)數(shù)據(jù)備份與恢復(fù)舉例:數(shù)據(jù)備份過(guò)程如下:①在星期一下午1點(diǎn)進(jìn)行數(shù)據(jù)庫(kù)Bookstore的完全備份,備份文件為file.sql。②從星期一下午1點(diǎn)開(kāi)始用戶(hù)啟用日志,bin_log.000001文件保存了從星期一下午1點(diǎn)以后的所有更改。③在星期三下午1點(diǎn)時(shí)數(shù)據(jù)庫(kù)崩潰?,F(xiàn)要將數(shù)據(jù)庫(kù)恢復(fù)到星期三下午1點(diǎn)時(shí)的狀態(tài)?;謴?fù)步驟如下:①首先將數(shù)據(jù)庫(kù)恢復(fù)到星期一下午1點(diǎn)時(shí)的狀態(tài)。②然后使用以下命令將數(shù)據(jù)庫(kù)恢復(fù)到三下午1點(diǎn)時(shí)的狀態(tài):mysqlbinlogbin_log.000001日志管理命令由于日志文件要占用很大的硬盤(pán)資源,所以要及時(shí)將沒(méi)用的日志文件清除掉。以下這條SQL語(yǔ)句用于清除所有的日志文件:RESETMASTER;如果要?jiǎng)h除部分日志文件,可以使用PURGEMASTERLOGS語(yǔ)句。語(yǔ)法格式為:PURGE{MASTER|BINARY}LOGSTO'日志文件名’用于刪除日志文件名指定的日志文件?;騊URGE{MASTER|BINARY}LOGSBEFORE'日期’

用于刪除時(shí)間在日期之前的所有日志文件?!纠縿h除2016年5月23日星期一下午1點(diǎn)之前的部分日志文件。PURGEMASTERLOGSBEFORE'2016-05-2313:00:00';事務(wù)管理事務(wù)ACID屬性原子性(A):原子性意味著每個(gè)事務(wù)都必須被認(rèn)為是一個(gè)不可分割的單元。一致性(C):不管事務(wù)是完全成功完成還是中途失敗,一致性屬性保證了數(shù)據(jù)庫(kù)從不返回一個(gè)未處理完的事務(wù)。隔離性(I):隔離性是指每個(gè)事務(wù)在它自己的空間發(fā)生,和發(fā)生在系統(tǒng)中的其他事務(wù)隔離,而且事務(wù)的結(jié)果只有在它完全被執(zhí)行時(shí)才能看到。持久性(D):事務(wù)完成后,所做的修改對(duì)數(shù)據(jù)的影響是永久的,即使系統(tǒng)重啟或者出現(xiàn)系統(tǒng)故障,數(shù)據(jù)都可以恢復(fù)。添加雇員事務(wù)流程事務(wù)處理在MySQL中,用戶(hù)必須關(guān)閉自動(dòng)提交,事務(wù)才能由多條SQL語(yǔ)句組成。使用如下語(yǔ)句關(guān)閉自動(dòng)提交:SET@@AUTOCOMMIT=0;開(kāi)始事務(wù)當(dāng)一個(gè)應(yīng)用程序的第一條SQL語(yǔ)句或者在COMMIT或ROLLBACK語(yǔ)句后的第一條SQL執(zhí)行后,一個(gè)新的事務(wù)也就開(kāi)始了。另外還可以使用一條STARTTRANSACTION語(yǔ)句來(lái)顯示地啟動(dòng)一個(gè)事務(wù)。

其格式為:STARTTRANSACTION結(jié)束事務(wù):COMMITCOMMIT語(yǔ)句是提交語(yǔ)句,它使得自從事務(wù)開(kāi)始以來(lái)所執(zhí)行的所有數(shù)據(jù)修改成為數(shù)據(jù)庫(kù)的永久部分,也標(biāo)志一

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論