項(xiàng)目九 維護(hù)教學(xué)管理系統(tǒng)數(shù)據(jù)庫(kù)_第1頁(yè)
項(xiàng)目九 維護(hù)教學(xué)管理系統(tǒng)數(shù)據(jù)庫(kù)_第2頁(yè)
項(xiàng)目九 維護(hù)教學(xué)管理系統(tǒng)數(shù)據(jù)庫(kù)_第3頁(yè)
項(xiàng)目九 維護(hù)教學(xué)管理系統(tǒng)數(shù)據(jù)庫(kù)_第4頁(yè)
項(xiàng)目九 維護(hù)教學(xué)管理系統(tǒng)數(shù)據(jù)庫(kù)_第5頁(yè)
已閱讀5頁(yè),還剩57頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

項(xiàng)目九維護(hù)教學(xué)管理系統(tǒng)數(shù)據(jù)庫(kù)項(xiàng)目目標(biāo)①了解用戶與權(quán)限的作用。②掌握CREATEUSE創(chuàng)建用戶。③掌握GRANT授予用戶權(quán)限。④掌握數(shù)據(jù)庫(kù)的備份與恢復(fù)方法。① 能夠備份和管理數(shù)據(jù)庫(kù)。② 能夠管理數(shù)據(jù)庫(kù)用戶。① 提高安全意識(shí)和法治意識(shí)。② 具有強(qiáng)烈的社會(huì)責(zé)任感。③ 具有良好的職業(yè)道德和職業(yè)品格。能力目標(biāo)知識(shí)目標(biāo)素養(yǎng)目標(biāo)目錄CONTENTS任務(wù)9.1管理用戶任務(wù)9.2任務(wù)9.3拓展訓(xùn)練管理權(quán)限備份和恢復(fù)教學(xué)管理系統(tǒng)數(shù)據(jù)庫(kù)維護(hù)鄉(xiāng)村振興助農(nóng)電商平臺(tái)數(shù)據(jù)庫(kù)拓展閱讀維護(hù)國(guó)家安全、加強(qiáng)個(gè)人信息保護(hù)項(xiàng)目情境項(xiàng)目情境目前,教學(xué)管理數(shù)據(jù)庫(kù)擁有一個(gè)超級(jí)用戶root,前期的開發(fā)工作是用root超級(jí)用戶登錄完成的。為了更好的維護(hù)教學(xué)管理系統(tǒng)數(shù)據(jù)庫(kù),控制數(shù)據(jù)庫(kù)操作人員的訪問(wèn)與操作范圍。需要為教學(xué)管理系統(tǒng)創(chuàng)建用戶并授予相應(yīng)的權(quán)限。任務(wù)9.1管理用戶子任務(wù)9.1.1創(chuàng)建用戶任務(wù)描述為教學(xué)管理系統(tǒng)創(chuàng)建6個(gè)用戶。要求如下:分別創(chuàng)建2個(gè)沒(méi)有密碼的用戶u1和u2,機(jī)地址都為localhost。然后分別創(chuàng)建2個(gè)有密碼的用戶,用戶“operator1”的密碼為“123456”,用戶“operator2”的密碼為“abc”最后,同時(shí)創(chuàng)建2個(gè)用戶“operator3”和“operator4”,其中用戶“operator3”的密碼為“333333”,用戶“operator4”的密碼為“555555”子任務(wù)9.1.1創(chuàng)建用戶知識(shí)引入使?createuser創(chuàng)建用戶的最簡(jiǎn)?式創(chuàng)建用戶語(yǔ)法如下:CREATEUSER[IFNOTEXISTS]賬戶名[用戶身份驗(yàn)證選項(xiàng)][,賬戶名[用戶身份驗(yàn)證選項(xiàng)]]…[WITH資源控制選項(xiàng)][密碼管理選項(xiàng)|賬戶鎖定選項(xiàng)]子任務(wù)9.1.1創(chuàng)建用戶知識(shí)引入CREATEUSER語(yǔ)句選項(xiàng)默認(rèn)值表選項(xiàng)默認(rèn)值用戶身份驗(yàn)證選項(xiàng)由default_authentication_plugin系統(tǒng)變量定義的插件進(jìn)行身份驗(yàn)證加密連接協(xié)議選項(xiàng)NONE資源控制選項(xiàng)N(表示無(wú)限制)密碼管理選項(xiàng)PASSWORDEXPIREDEFAULT用戶鎖定選項(xiàng)ACCOUNTUNLOCK說(shuō)明:CREATEUSER可以一次創(chuàng)建多個(gè)用戶,多個(gè)用戶之間使用逗號(hào)分隔。賬戶名是由“用戶名@主機(jī)地址”組成。其余選項(xiàng)在創(chuàng)建用戶時(shí),若未設(shè)置則使用默認(rèn)值。用戶名的設(shè)置不能超過(guò)32個(gè)字符,且區(qū)分大小寫,但是主機(jī)地址不區(qū)分大小寫。用戶身份驗(yàn)證選項(xiàng)的設(shè)置僅適用于其前面的用戶名,可將其理解為某個(gè)用戶的私有屬性。其余的選項(xiàng)對(duì)聲明中的所有用戶都有效,可以將其理解為全局屬性。子任務(wù)9.1.1創(chuàng)建用戶任務(wù)實(shí)現(xiàn)在創(chuàng)建用戶時(shí),若不指定主機(jī)地址、密碼以及相關(guān)的用戶選項(xiàng),則表示此用戶在訪問(wèn)MySQL服務(wù)器時(shí),不限定客戶端、不需要密碼并且沒(méi)有任何限制。host的值為“%”表示任何主機(jī),其值為localhost時(shí),表本地主機(jī),其值為空字符串(‘’)時(shí),表示所有客戶端。(1)添加用戶u1和用戶u2CREATEUSER'u1'@'localhost';CREATEUSER'u2'@'localhost';查看用戶是否已創(chuàng)建SELECThost,userFROMmysql.user;子任務(wù)9.1.1創(chuàng)建用戶任務(wù)實(shí)現(xiàn)(2)創(chuàng)建兩個(gè)含有密碼的用戶,其中用戶“operator1”的密碼為“123456”,用戶“operator2”的密碼為“abc”CREATEUSER'operator1'@'localhost'IDENTIFIEDBY'123456';CREATEUSER'operator2'@'localhost'IDENTIFIEDBY'abc';(3)同時(shí)創(chuàng)建多個(gè)用戶,其中用戶“operator3”的密碼為“333333”,用戶“operator4”的密碼為“555555”CREATEUSER'operator3'@'localhost'IDENTIFIEDBY'333333','operator4'@'localhost'IDENTIFIEDBY'555555';子任務(wù)9.1.2刪除用戶任務(wù)描述刪除用戶operator4。知識(shí)引入在MySQL中經(jīng)常會(huì)創(chuàng)建多個(gè)普通用戶管理數(shù)據(jù)庫(kù),但如果發(fā)現(xiàn)某些用戶是沒(méi)有必要的,就可以將其刪除,通常刪除用戶的方式采用MySQL提供的專門SQL語(yǔ)句。語(yǔ)法如下:DROPUSER[IFEXISTS]賬戶名[,賬戶名]…;(1)MySQL5.x版本之后DROPUSER語(yǔ)句可以同時(shí)刪除一個(gè)或多個(gè)MySQL中的指定用戶,并會(huì)同時(shí)從授權(quán)表中刪除賬戶對(duì)應(yīng)的權(quán)限行。(2)在MySQL5.x之前的版本中,在刪除用戶前必須先回收用戶的權(quán)限。其中,賬戶名與創(chuàng)建用戶的格式相同,由“用戶名@主機(jī)地址”組成。子任務(wù)9.1.2刪除用戶任務(wù)實(shí)現(xiàn)方法1:DROPuser'operator4'@'localhost';方法2:DELETEFROMmysql.userWHEREuser='operator4';

刪除用戶后要刷新權(quán)限,需要將新加入的用戶寫入到權(quán)限表中,即更新granttable。使用下面語(yǔ)句:FLUSHPRIVILEGES;子任務(wù)9.1.3修改用戶名任務(wù)描述將用戶operator3的用戶名修改為op3,來(lái)源主機(jī)為localhost。知識(shí)引入修改?戶名和來(lái)源主機(jī),語(yǔ)法格式:RENAMEUSER舊用戶名1TO新用戶名1[,舊用戶名2TO新用戶名2]…說(shuō)明:(1)RENAMEUSER在為用戶重命名時(shí),舊用戶名與新用戶名之間使用TO關(guān)鍵字連接。(2)同時(shí)為多個(gè)用戶重命名時(shí)使用逗號(hào)(,)進(jìn)行分割。(3)被重命名的舊用戶不存在或新用戶名已存在時(shí),系統(tǒng)會(huì)報(bào)錯(cuò)。子任務(wù)9.1.3修改用戶名任務(wù)實(shí)現(xiàn)將用戶operator3的用戶名修改為op3,的腳本如下:RENAMEUSER'operator3'@'localhost'TO'op3'@'localhost';查看是否修改成功,運(yùn)行下面語(yǔ)句,結(jié)果如圖所示。SELECThost,userFROMmysql.user;子任務(wù)9.1.4修改密碼任務(wù)描述“operator2”用戶已經(jīng)創(chuàng)建成功,為了保證數(shù)據(jù)庫(kù)的安全性,需要為用戶“operator2”設(shè)置密碼“12345678”。知識(shí)引入MySQL中的用戶密碼一旦丟失就需要及時(shí)進(jìn)行修改,root用戶具有最高的權(quán)限可以修改自己的密碼、普通用戶的密碼,而普通用戶只能修改自己的密碼。1.使用GRANTUSAGE語(yǔ)句修改GRANTUSAGEON*.*TO'username'@'localhost'IDENTIFIEDBY[PASSWORD]'new_password';子任務(wù)9.1.4修改密碼知識(shí)引入2.使用UPDATE語(yǔ)句修改密碼UPDATEmysql.userSETPassword=PASSWORD('new_password')WHEREUser='username'ANDHost='hostname';3.使用SET語(yǔ)句修改SETPASSWORDFOR'username'@'localhost'=PASSWORD('new_password');子任務(wù)9.1.4修改密碼任務(wù)實(shí)現(xiàn)為用戶“operator2”設(shè)置密碼“12345678”的方法有3個(gè)。方法一:使用GRANTUSAGE語(yǔ)句修改GRANTUSAGEON*.*TO'operator2'@'localhost'IDENTIFIEDBY'12345678';方法二:使用UPDATE語(yǔ)句修改密碼UPDATEmysql.userSETPassword=PASSWORD('12345678')WHEREUser='operator2'ANDHost='localhost';方法三:使用SET語(yǔ)句修改SETpasswordFORoperator2@localhost=password('12345678');任務(wù)9.2管理權(quán)限子任務(wù)9.2.1授予權(quán)限任務(wù)描述授予operator2用戶jxgl.departments表(系部表)的SELECT權(quán)限,以及插入記錄的權(quán)限。知識(shí)引入1.了解用戶權(quán)限權(quán)限信息根據(jù)其作用范圍,分別存儲(chǔ)在mysql數(shù)據(jù)庫(kù)中的不同數(shù)據(jù)表中。當(dāng)MySQL啟動(dòng)時(shí)會(huì)自動(dòng)加載這些權(quán)限信息,并將這些權(quán)限信息讀取到內(nèi)存中。子任務(wù)9.2.1授予權(quán)限知識(shí)引入數(shù)據(jù)表描述user保存用戶被授予的全局權(quán)限db保存用戶被授予的數(shù)據(jù)庫(kù)權(quán)限tables_priv保存用戶被授予的表權(quán)限columns_priv保存用戶被授予的列權(quán)限procs_priv保存用戶被授予的存儲(chǔ)過(guò)程權(quán)限proxies_priv保存用戶被授予的代理權(quán)限子任務(wù)9.2.1授予權(quán)限知識(shí)引入根據(jù)權(quán)限的操作內(nèi)容可將權(quán)限大致分為數(shù)據(jù)權(quán)限、結(jié)構(gòu)權(quán)限以及管理權(quán)限。分類權(quán)限權(quán)限級(jí)別描述數(shù)據(jù)權(quán)限SELECT全局、數(shù)據(jù)庫(kù)、表、列SELECTUPDATE全局、數(shù)據(jù)庫(kù)、表、列UPDATEDELETE全局、數(shù)據(jù)庫(kù)、表DELETEINSERT全局、數(shù)據(jù)庫(kù)、表、列INSERTSHOWDATABASES全局SHOWDATABASESSHOWVIEW全局、數(shù)據(jù)庫(kù)、表SHOWCREATEVIEWPROCESS全局SHOWPROCESSLIST子任務(wù)9.2.1授予權(quán)限知識(shí)引入分類權(quán)限權(quán)限級(jí)別描述結(jié)構(gòu)權(quán)限D(zhuǎn)ROP全局、數(shù)據(jù)庫(kù)、表允許刪除數(shù)據(jù)庫(kù)、表和視圖CREATE全局、數(shù)據(jù)庫(kù)、表創(chuàng)建數(shù)據(jù)庫(kù)、表CREATEROUTINE全局、數(shù)據(jù)庫(kù)創(chuàng)建存儲(chǔ)過(guò)程CREATETABLESPACE全局允許創(chuàng)建、修改或刪除表空間和日志文件組CREATETEMPORARYTABLES全局、數(shù)據(jù)庫(kù)CREATETEMPORARYTABLECREATEVIEW全局、數(shù)據(jù)庫(kù)、表允許創(chuàng)建或修改視圖ALTER全局、數(shù)據(jù)庫(kù)、表ALTERTABLEALTERROUTINE全局、數(shù)據(jù)庫(kù)、存儲(chǔ)過(guò)程允許刪除或修改存儲(chǔ)過(guò)程INDEX全局、數(shù)據(jù)庫(kù)、表允許創(chuàng)建或刪除索引子任務(wù)9.2.1授予權(quán)限知識(shí)引入分類權(quán)限權(quán)限級(jí)別描述管理權(quán)限REPLICATIONSLAVE全局允許復(fù)制從服務(wù)器讀取的主服務(wù)器二進(jìn)制日志事件SHUTDOWN全局允許使用mysqladminshutdownLOCKTABLES全局、數(shù)據(jù)庫(kù)允許在有SELECT表權(quán)限上使用LOCKTABLES子任務(wù)9.2.1授予權(quán)限知識(shí)引入2.授予權(quán)限GRANT權(quán)限類型[字段列表][,權(quán)限類型[字段列表]]...ON[目標(biāo)類型]權(quán)限級(jí)別TO賬戶名[用戶身份驗(yàn)證選項(xiàng)][,賬戶名[用戶身份驗(yàn)證選項(xiàng)]]...[REQUIRE連接方式][WITH{GRANTOPTION|資源控制選項(xiàng)}]說(shuō)明:權(quán)限類型:指的就是SELECT、DROP、CREATE等權(quán)限。字段列表:用于設(shè)置列權(quán)限。目標(biāo)類型:默認(rèn)為TABLE,表示將全局、數(shù)據(jù)庫(kù)、表或列中的某些權(quán)限授予給指定的用戶。其他值為FUNCTION(函數(shù))或PROCEDURE(存儲(chǔ)過(guò)程)。權(quán)限級(jí)別:用于定義全局權(quán)限、數(shù)據(jù)庫(kù)權(quán)限和表權(quán)限。添加GRANTOPTION:表示當(dāng)前賬戶可以為其他賬戶進(jìn)行授權(quán)。其余各參數(shù)均與CREATEUSER中的用戶選項(xiàng)相同,這里不再贅述。子任務(wù)9.2.1授予權(quán)限任務(wù)實(shí)現(xiàn)授予operator2用戶jxgl.departments表(系部表)的SELECT權(quán)限,以及插入記錄的權(quán)限,執(zhí)行如下語(yǔ)句:GRANTSELECT,INSERTONjxgl.departmentsTO'operator2'@'localhost';

新建連接用operator2用戶連接數(shù)據(jù)庫(kù),輸入密碼12345678。分別查詢系部表(departments)和班級(jí)表(class),查看是否成功。子任務(wù)9.2.2查看權(quán)限任務(wù)描述查看root用戶和operator2用戶的授權(quán)情況。知識(shí)引入查看root用戶語(yǔ)句:SHOWGRANTSFOR'root'@'localhost';子任務(wù)9.2.2查看權(quán)限知識(shí)引入operator2用戶的授權(quán)情況,結(jié)果如圖所示。SHOWGRANTSFOR'operator2'@'localhost';說(shuō)明:(1) ALLPRIVILEGES表示除GRANTOPTION(授權(quán)權(quán)限)和PROXY(代理權(quán)限)外的所有權(quán)限。(2) USAGE表示沒(méi)有任何權(quán)限。(3) ON后的*.*表示全局級(jí)別的權(quán)限,即MySQL服務(wù)器下的所有數(shù)據(jù)庫(kù)下的所有表,‘’@‘’表示任何主機(jī)中的匿名用戶。子任務(wù)9.2.3回收權(quán)限任務(wù)描述回收用戶operator2對(duì)系部表(departments)的插入權(quán)限。知識(shí)引入在MySQL中,為了保證數(shù)據(jù)庫(kù)的安全性,需要將用戶不必要的權(quán)限回收。MySQL用于回收指定用戶的權(quán)限的語(yǔ)句為REVOKE。子任務(wù)9.2.3回收權(quán)限知識(shí)引入1.回收指定用戶的指定權(quán)限REVOKE權(quán)限類型[(字段列表)][,權(quán)限類型[(字段列表)]]…ON[目標(biāo)類型]權(quán)限級(jí)別FROM賬戶名[,賬戶名]…2.回收所有權(quán)限以及可為其他用戶授權(quán)的權(quán)限REVOKEALL[PRIVILEGES],GRANTOPTIONFROM賬戶名[,賬戶名]…3.回收用戶的代理權(quán)限REVOKEPROXYON賬戶名FROM賬戶名1[,賬戶名2]…子任務(wù)9.2.3回收權(quán)限任務(wù)實(shí)現(xiàn)針對(duì)任務(wù)要求,回收用戶operator2對(duì)系部表的插入權(quán)限語(yǔ)句如下:REVOKEINSERTONjxgl.departmentsFROM'operator2'@'localhost';執(zhí)行完畢以后,查看用戶operator2權(quán)限,結(jié)果如圖所示。SHOWGRANTSFOR'operator2'@'localhost';任務(wù)9.3備份和恢復(fù)教學(xué)管理系統(tǒng)數(shù)據(jù)庫(kù)子任務(wù)9.3.1備份數(shù)據(jù)庫(kù)任務(wù)描述(1)備份教學(xué)管理系統(tǒng)數(shù)據(jù)庫(kù),具體要求如下:①備份指定的數(shù)據(jù)庫(kù),或者此數(shù)據(jù)庫(kù)中某些表。②備份指定的一個(gè)或多個(gè)數(shù)據(jù)庫(kù)。③備份所有數(shù)據(jù)庫(kù)。(2)使用Navicat備份教學(xué)管理系統(tǒng)數(shù)據(jù)庫(kù)子任務(wù)9.3.1備份數(shù)據(jù)庫(kù)知識(shí)引入1.備份/恢復(fù)策略對(duì)于一個(gè)DBA來(lái)說(shuō),定制合理的備份策略無(wú)疑是很重要的,以下是我們?cè)谶M(jìn)行備份或恢復(fù)操作時(shí)需要考慮的一些因素。(1)確定要備份的表的存儲(chǔ)引擎是事務(wù)型還是非事務(wù)性,兩種不同的存儲(chǔ)引擎?zhèn)浞莘绞皆谔幚頂?shù)據(jù)一致性方面是不太一樣的。(2)確定使用全備份還是增量備份。全備份的優(yōu)點(diǎn)是備份保持最新備份,恢復(fù)的時(shí)候可以花費(fèi)更少的時(shí)間;缺點(diǎn)是如果數(shù)據(jù)量大,將會(huì)花費(fèi)很多的時(shí)間,并對(duì)系統(tǒng)造成較長(zhǎng)時(shí)間的壓力。增量備份則恰恰相反,只需要備份每天的增量日志,備份時(shí)間少,對(duì)負(fù)載壓力也??;缺點(diǎn)就是恢復(fù)的時(shí)候需要全備份加上次備份到故障前的所有日志,恢復(fù)時(shí)間會(huì)長(zhǎng)些。子任務(wù)9.3.1備份數(shù)據(jù)庫(kù)知識(shí)引入(3)可以考慮采取復(fù)制的方法來(lái)做異地備份,但是,復(fù)制不能代替?zhèn)浞?,它?duì)數(shù)據(jù)庫(kù)的誤操作也無(wú)能為力。(4)要定期做備份,備份的周期要充分考慮系統(tǒng)可以承受的恢復(fù)時(shí)間。備份要在系統(tǒng)負(fù)載較小的時(shí)候進(jìn)行。(5)確保MySQL打開log-bin選項(xiàng),有了BINLOG,MySQL才可以在必要的時(shí)候做完整恢復(fù),或基于時(shí)間點(diǎn)的恢復(fù),或基于位置的恢復(fù)。(6)要經(jīng)常做備份恢復(fù)測(cè)試,確保備份是有效的,并且是可以恢復(fù)的。子任務(wù)9.3.1備份數(shù)據(jù)庫(kù)知識(shí)引入2.邏輯備份在MySQL里面,邏輯備份的最大優(yōu)點(diǎn)是對(duì)于各種存儲(chǔ)引擎,都可以用同樣的方法來(lái)備份;而物理備份則不同,不同的存儲(chǔ)引擎有著不同的備份方法。因此,對(duì)于不同存儲(chǔ)引擎混合的數(shù)據(jù)庫(kù),用邏輯備份會(huì)更簡(jiǎn)單一些。下面將詳細(xì)介紹邏輯備份以及相應(yīng)的恢復(fù)方法。子任務(wù)9.3.1備份數(shù)據(jù)庫(kù)知識(shí)引入1)使用mysqldump命令備份在MySQL中,有以下3種方法來(lái)調(diào)用mysqldump:

(1)備份指定的數(shù)據(jù)庫(kù),或者此數(shù)據(jù)庫(kù)中某些表。語(yǔ)法:mysqldump[-h主機(jī)名-P端口-u用戶名-p密碼]db_name[tables]說(shuō)明:db_name是要備份的數(shù)據(jù)庫(kù)名,tables表示數(shù)據(jù)庫(kù)中的表名。

(2)備份指定的一個(gè)或多個(gè)數(shù)據(jù)庫(kù)。語(yǔ)法:

mysqldump[-h主機(jī)名-P端口-u用戶名-p密碼]--databaseDB1[DB2DB3...]說(shuō)明:--database后面至少指定一個(gè)數(shù)據(jù)庫(kù)名,如果多個(gè)數(shù)據(jù)庫(kù)用空格隔開

(3)備份所有數(shù)據(jù)庫(kù)。語(yǔ)法:

mysqldump[-h主機(jī)名-P端口-u用戶名-p密碼]--all--databases子任務(wù)9.3.1備份數(shù)據(jù)庫(kù)知識(shí)引入2)使用mysqlhotcopy工具快速備份如果備份時(shí)不能停止MySQL服務(wù)器,可以采用mysqlhotcopy工具。mysqlhotcopy工具的備份方式比mysqldump命令快。下面為讀者介紹mysqlhotcopy工具的工作原理和使用方法。mysqlhotcopy工具是一個(gè)Perl腳本,主要在Linux操作系統(tǒng)下使用。mysqlhotcopy工具使用LOCKTABLES、FLUSHTABLES和cp來(lái)進(jìn)行快速備份。其工作原理是:先將需要備份的數(shù)據(jù)庫(kù)加上一個(gè)讀操作鎖,然后用FLUSHTABLES將內(nèi)存中的數(shù)據(jù)寫回到硬盤上的數(shù)據(jù)庫(kù)中,最后把需要備份的數(shù)據(jù)庫(kù)文件復(fù)制到目標(biāo)目錄。使用mysqlhotcopy的命令如下:[root@localhost~]#mysqlhotcopy[option]dbname1dbname2…backupDir子任務(wù)9.3.1備份數(shù)據(jù)庫(kù)知識(shí)引入3.使用Navicat備份數(shù)據(jù)庫(kù)借助工具Navicat可以備份數(shù)據(jù)庫(kù)。選擇要備份的數(shù)據(jù)庫(kù),點(diǎn)擊工具欄“備份”,然后點(diǎn)擊下方“新建備份”,如圖所示。子任務(wù)9.3.1備份數(shù)據(jù)庫(kù)知識(shí)引入如圖所示,在打開的“新建備份”窗體,可以直接選擇“備份”按鈕,此時(shí)會(huì)備份出一個(gè)默認(rèn)名稱的數(shù)據(jù)庫(kù)備份文件。子任務(wù)9.3.1備份數(shù)據(jù)庫(kù)知識(shí)引入在“對(duì)象選擇”選項(xiàng)卡中,還可以設(shè)置要備份的對(duì)象類型。在這里我們使用默認(rèn)設(shè)置。子任務(wù)9.3.1備份數(shù)據(jù)庫(kù)知識(shí)引入如果想指定備份文件的名稱,可以點(diǎn)擊“高級(jí)”選項(xiàng)卡,如圖所示,然后勾選“使用指定文件名”選項(xiàng),并在下方文本框輸入備份文件的名稱。子任務(wù)9.3.1備份數(shù)據(jù)庫(kù)任務(wù)實(shí)現(xiàn)(1)備份教學(xué)管理系統(tǒng)數(shù)據(jù)庫(kù)按下快捷組合鍵win+r,輸入cmd,運(yùn)行。進(jìn)入mysql所在的bin目錄下,如:cdC:\ProgramFiles\MySQL\MySQLServer8.0.29\bin①備份數(shù)據(jù)庫(kù)jxglmysqldump-uroot-prootjxgl>jxgl.sql②備份數(shù)據(jù)庫(kù)jxgl下的表score表mysqldump-uroot-prootjxglscore>score.sql③備份數(shù)據(jù)庫(kù)jxgl下的表class表和students表:

mysqldump-uroot-prootjxglclassstudents>class_stu.sql子任務(wù)9.3.1備份數(shù)據(jù)庫(kù)任務(wù)實(shí)現(xiàn)

(2)使用Navicat備份教學(xué)關(guān)系系統(tǒng)數(shù)據(jù)庫(kù)選擇“jxgl”數(shù)據(jù)庫(kù),點(diǎn)擊工具欄中的“備份”,然后點(diǎn)擊下方“新建備份”。打開“新建備份”窗口,直接點(diǎn)擊“高級(jí)”選項(xiàng)卡,勾選“使用指定文件名”選項(xiàng),并在下方文本框輸入“jxgl”。

子任務(wù)9.3.1備份數(shù)據(jù)庫(kù)任務(wù)實(shí)現(xiàn)點(diǎn)擊“備份”按鈕。待進(jìn)度條執(zhí)行完畢后點(diǎn)擊“關(guān)閉”按鈕。子任務(wù)9.3.2恢復(fù)數(shù)據(jù)庫(kù)任務(wù)描述數(shù)據(jù)庫(kù)管理員上午10:00將教學(xué)管理系統(tǒng)數(shù)據(jù)庫(kù)的系部表備份,然后向系部表添加2條記錄。中午12:00點(diǎn)數(shù)據(jù)庫(kù)發(fā)生故障,完全恢復(fù)數(shù)據(jù)庫(kù)jxgl。知識(shí)引入

管理員的非法操作和計(jì)算機(jī)的故障都會(huì)破壞數(shù)據(jù)庫(kù)文件。當(dāng)數(shù)據(jù)庫(kù)遭到這些意外時(shí),可以通過(guò)備份文件將數(shù)據(jù)庫(kù)還原到備份時(shí)的狀態(tài)。這樣可以將損失降低到最小。

管理員通常使用mysqldump命令將數(shù)據(jù)庫(kù)中的數(shù)據(jù)備份成一個(gè)文本文件。通常這個(gè)文件的后綴名是sql。需要還原時(shí),可以使用mysql命令來(lái)還原備份的數(shù)據(jù)。

備份文件中通常包含CREATE語(yǔ)句和INSERT語(yǔ)句。mysql命令可以執(zhí)行備份文件中的CREATE語(yǔ)句和INSERT語(yǔ)句。通過(guò)CREATE語(yǔ)句來(lái)創(chuàng)建數(shù)據(jù)庫(kù)和表。通過(guò)INSERT語(yǔ)句來(lái)插入子任務(wù)9.3.2恢復(fù)數(shù)據(jù)庫(kù)知識(shí)引入1.完全恢復(fù)mysqldump的恢復(fù)也很簡(jiǎn)單,將備份作為輸入執(zhí)行即可,具體語(yǔ)法如下:mysql–uroot–pdbname<bakfile注意,將備份恢復(fù)后數(shù)據(jù)并不完整,還需要將備份后執(zhí)行的日志進(jìn)行重做,語(yǔ)法如下:mysqlbinlogbinlog-file|mysql-uroot–p***子任務(wù)9.3.2恢復(fù)數(shù)據(jù)庫(kù)知識(shí)引入2.基于時(shí)間點(diǎn)恢復(fù)由于誤操作,比如誤刪除了一張表,這時(shí)使用完全恢復(fù)是沒(méi)有用的,因?yàn)槿罩纠锩孢€存在誤操作的語(yǔ)句,我們需要的是恢復(fù)到誤操作之前的狀態(tài),然后跳過(guò)誤操作語(yǔ)句,再恢復(fù)后面執(zhí)行的語(yǔ)句,完成我們的恢復(fù)。這種恢復(fù)叫不完全恢復(fù),在MySQL中,不完全恢復(fù)分為基于時(shí)間點(diǎn)的恢復(fù)和基于位置的恢復(fù)。示例9-1:(1)如果上午10點(diǎn)發(fā)生了誤操作,可以用以下語(yǔ)句用備份和BINLOG將數(shù)據(jù)恢復(fù)到故障前:mysqlbinlog--stop-date="2022-05-209:59:59"/var/log/mysql/bin.123456|mysql-uroot–pmypwd(2)跳過(guò)故障時(shí)的時(shí)間點(diǎn),繼續(xù)執(zhí)行后面的BINLOG,完成恢復(fù)。mysqlbinlog--start-date="2022-05-2010:01:00"/var/log/mysql/bin.123456|mysql-uroot-pmypwd\子任務(wù)9.3.2恢復(fù)數(shù)據(jù)庫(kù)知識(shí)引入3.基于位置恢復(fù)和基于時(shí)間點(diǎn)的恢復(fù)類似,但是更精確,因?yàn)橥粋€(gè)時(shí)間點(diǎn)可能有很多條SQL語(yǔ)句同時(shí)執(zhí)行。示例9-2:(1)在shell下執(zhí)行如下命令:mysqlbinlog--start-date="2022-04-209:55:00"--stop-date="2022-04-2010:05:00"/var/log/mysql/bin.123456>/tmp/mysql_restore.sql該命令將在/tmp目錄創(chuàng)建小的文本文件,編輯此文件,找到出錯(cuò)語(yǔ)句前后的位置號(hào),例如前后位置號(hào)分別是368312和368315。(2)恢復(fù)了以前的備份文件后,應(yīng)從命令行輸入下面內(nèi)容:mysqlbinlog--stop-position="368312"/var/log/mysql/bin.123456\|mysql-uroot-pmypwdmysqlbinlog--start-position="368315"/var/log/mysql/bin.123456\|mysql-uroot-pmypwd\子任務(wù)9.3.2恢復(fù)數(shù)據(jù)庫(kù)知識(shí)引入4.用Navicat還原數(shù)據(jù)庫(kù)首先,新建一個(gè)數(shù)據(jù)庫(kù)。然后展開數(shù)據(jù)庫(kù),鼠標(biāo)右鍵選擇下方“備份”,在彈出的右鍵菜單中選擇“還原備份從…”。子任務(wù)9.3.2恢復(fù)數(shù)據(jù)庫(kù)任務(wù)實(shí)現(xiàn)按下快捷組合鍵win+r,輸入cmd,運(yùn)行。進(jìn)入mysql所在的bin目錄下,如:cdC:\ProgramFiles\MySQL\MySQLServer8.0.29\bin(1)上午10點(diǎn),備份數(shù)據(jù)庫(kù)jxglmysqldump-uroot–p–l–Fjxgl>jxgl.dmp說(shuō)明:

-l參數(shù)表示給所有表加讀鎖

-F表示生成一個(gè)新的日志文件此時(shí),jxgl中departments表的數(shù)據(jù)如下:select*fromdepartments;子任務(wù)9.3.2恢復(fù)數(shù)據(jù)庫(kù)任務(wù)實(shí)現(xiàn)(2)10點(diǎn)半備份完畢,然后,插入新的數(shù)據(jù):

insertintodepartmentsvalues('D005','機(jī)電技術(shù)');QueryOK,1rowaffected(0.08sec)insertintodepartmentsvalues('D006','現(xiàn)代服務(wù)');QueryOK,1rowaffected(0.05sec)(3)12點(diǎn),數(shù)據(jù)庫(kù)突然故障,數(shù)據(jù)無(wú)法訪問(wèn)。需要恢復(fù)備份:

mysql-uroot-pjxgl<jxgl.dmp恢復(fù)后的數(shù)據(jù)如下:

SELECT*FROMdepartments;子任務(wù)9.3.2恢復(fù)數(shù)據(jù)庫(kù)任務(wù)實(shí)現(xiàn)④使用mysqlbinlog恢復(fù)自mysqldump備份以來(lái)的BINLOG。mysqlbinloglocalhost-bin.000015|mysql-uroot–pjxgl查詢完全恢復(fù)的數(shù)據(jù)如下:+------+----------+|d_no|d_name|+------+----------+|D001|信息技術(shù)||D002|裝備技術(shù)||D003|工商管理||D004|基礎(chǔ)部||D005|機(jī)電技術(shù)||D006|現(xiàn)代服務(wù)|+------+----------+6rowsinset(0.07sec)至此,數(shù)據(jù)庫(kù)完全恢復(fù)。子任務(wù)9.3.3導(dǎo)出和導(dǎo)入數(shù)據(jù)表任務(wù)描述MySQL數(shù)據(jù)庫(kù)中的表可以導(dǎo)出成文本文件、XML文件

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論