![MySQL數(shù)據(jù)庫(kù)運(yùn)維與管理PPT完整全套教學(xué)課件_第1頁(yè)](http://file4.renrendoc.com/view/5c797195d69351035ec22e9160d0dfce/5c797195d69351035ec22e9160d0dfce1.gif)
![MySQL數(shù)據(jù)庫(kù)運(yùn)維與管理PPT完整全套教學(xué)課件_第2頁(yè)](http://file4.renrendoc.com/view/5c797195d69351035ec22e9160d0dfce/5c797195d69351035ec22e9160d0dfce2.gif)
![MySQL數(shù)據(jù)庫(kù)運(yùn)維與管理PPT完整全套教學(xué)課件_第3頁(yè)](http://file4.renrendoc.com/view/5c797195d69351035ec22e9160d0dfce/5c797195d69351035ec22e9160d0dfce3.gif)
![MySQL數(shù)據(jù)庫(kù)運(yùn)維與管理PPT完整全套教學(xué)課件_第4頁(yè)](http://file4.renrendoc.com/view/5c797195d69351035ec22e9160d0dfce/5c797195d69351035ec22e9160d0dfce4.gif)
![MySQL數(shù)據(jù)庫(kù)運(yùn)維與管理PPT完整全套教學(xué)課件_第5頁(yè)](http://file4.renrendoc.com/view/5c797195d69351035ec22e9160d0dfce/5c797195d69351035ec22e9160d0dfce5.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)運(yùn)維與管理項(xiàng)目1了解數(shù)據(jù)庫(kù)運(yùn)維工作項(xiàng)目1了解數(shù)據(jù)庫(kù)運(yùn)維.pptx項(xiàng)目2安裝和配置MySQL數(shù)據(jù)庫(kù).pptx項(xiàng)目3管理MySQL權(quán)限與安全.pptx項(xiàng)目4分析MySQL日志.pptx項(xiàng)目5備份與恢復(fù)MySQL數(shù)據(jù)庫(kù).pptx項(xiàng)目6監(jiān)控、測(cè)試并優(yōu)化MySQL性能.pptx項(xiàng)目7MYSQL復(fù)制.pptx項(xiàng)目8搭建及運(yùn)維MySQLCluster.pptx項(xiàng)目9結(jié)合Redis的MySQL運(yùn)維.pptx項(xiàng)目10數(shù)據(jù)庫(kù)自動(dòng)化運(yùn)維.pptx全套可編輯PPT課件教學(xué)目標(biāo)知識(shí)目標(biāo)了解數(shù)據(jù)管理發(fā)展歷史掌握數(shù)據(jù)庫(kù)基本概念了解數(shù)據(jù)庫(kù)的類(lèi)型了解數(shù)據(jù)庫(kù)運(yùn)維職位及上崗要求能力目標(biāo)能根據(jù)崗位搜索并分析崗位任職要求能說(shuō)出數(shù)據(jù)庫(kù)運(yùn)維崗位的任職要求能根據(jù)不同應(yīng)用場(chǎng)景完成對(duì)數(shù)據(jù)庫(kù)的選型能說(shuō)出市場(chǎng)上常見(jiàn)的數(shù)據(jù)庫(kù)運(yùn)維平臺(tái)產(chǎn)品素養(yǎng)目標(biāo)信息搜索能力信息分析能力信息總結(jié)能力職業(yè)素養(yǎng)分析思政目標(biāo)民族自豪感國(guó)產(chǎn)軟件振興的使命擔(dān)當(dāng)項(xiàng)目1了解數(shù)據(jù)庫(kù)運(yùn)維工作項(xiàng)目場(chǎng)景:
天天電器商場(chǎng)是銷(xiāo)售家電、手機(jī)數(shù)碼等各種電器類(lèi)產(chǎn)品的省內(nèi)大型連鎖商場(chǎng),全省有100多家實(shí)體商場(chǎng)店面。為了更好地服務(wù)顧客,天天電器商場(chǎng)建立了從采購(gòu)到銷(xiāo)售、到售后服務(wù)一整套完善的業(yè)務(wù)處理系統(tǒng)。隨著業(yè)務(wù)變得越來(lái)越復(fù)雜,數(shù)據(jù)量也變得越來(lái)越龐大,在數(shù)據(jù)庫(kù)的長(zhǎng)期運(yùn)行過(guò)程中,產(chǎn)生了各式各樣的無(wú)效數(shù)據(jù),此外,數(shù)據(jù)庫(kù)的結(jié)構(gòu)也變得臃腫,數(shù)據(jù)查詢(xún)效率低,數(shù)據(jù)庫(kù)系統(tǒng)不堪重負(fù),常出現(xiàn)數(shù)據(jù)損壞,無(wú)法訪(fǎng)問(wèn)等異?,F(xiàn)象。公司管理層經(jīng)過(guò)研究,決定招聘2~3名數(shù)據(jù)庫(kù)管理人員,專(zhuān)職負(fù)責(zé)公司數(shù)據(jù)庫(kù)的運(yùn)維工作。具體來(lái)說(shuō),就是負(fù)責(zé)維護(hù)公司的各種業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫(kù)安全有效地運(yùn)行,負(fù)責(zé)數(shù)據(jù)存儲(chǔ)方案設(shè)計(jì)、數(shù)據(jù)庫(kù)表設(shè)計(jì)、索引設(shè)計(jì)和SQL優(yōu)化,對(duì)數(shù)據(jù)庫(kù)進(jìn)行變更、監(jiān)控、備份、高可用設(shè)計(jì)等工作,以提高數(shù)據(jù)庫(kù)的運(yùn)行效率,保障數(shù)據(jù)庫(kù)的穩(wěn)定運(yùn)行,從而保障公司業(yè)務(wù)系統(tǒng)的正常運(yùn)行。項(xiàng)目知識(shí)導(dǎo)入一、數(shù)據(jù)管理發(fā)展歷史1.人工管理階段2.文件系統(tǒng)階段3.?dāng)?shù)據(jù)庫(kù)系統(tǒng)階段數(shù)據(jù)庫(kù)系統(tǒng)相比于文件系統(tǒng)具有如下特點(diǎn)。(1)數(shù)據(jù)的結(jié)構(gòu)化存儲(chǔ)(2)配備有專(zhuān)門(mén)的數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行數(shù)據(jù)安全性和完整性的控制。項(xiàng)目知識(shí)導(dǎo)入二、數(shù)據(jù)庫(kù)基本概念1.?dāng)?shù)據(jù)庫(kù)(Database,DB)
是指以一定方式儲(chǔ)存在一起、能讓多個(gè)用戶(hù)共享、具有盡可能小的冗余度、與應(yīng)用程序彼此獨(dú)立的數(shù)據(jù)集合。也可以理解為,數(shù)據(jù)庫(kù)是按照特定的數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù)。2.?dāng)?shù)據(jù)庫(kù)管理系統(tǒng)(DatabaseManagementSystem,DBMS)
用于建立、使用和維護(hù)數(shù)據(jù)庫(kù)的大型軟件3.?dāng)?shù)據(jù)庫(kù)系統(tǒng)(DatabaseSystem,DBS)
包含數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)管理系統(tǒng)
常見(jiàn)的數(shù)據(jù)庫(kù)系統(tǒng):MySQL、SQLServer、Oracle、
達(dá)夢(mèng)(武漢達(dá)夢(mèng)https:///
)等項(xiàng)目知識(shí)導(dǎo)入三、數(shù)據(jù)庫(kù)類(lèi)型
數(shù)據(jù)庫(kù)有很多類(lèi)型。區(qū)分?jǐn)?shù)據(jù)庫(kù)類(lèi)型的主要參照的指標(biāo)是數(shù)據(jù)的存儲(chǔ)模型,常用的數(shù)據(jù)模型有:層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο竽P?、半結(jié)構(gòu)化模型
由于關(guān)系模型在很長(zhǎng)一段時(shí)間內(nèi)成為主流的數(shù)據(jù)模型,所以也習(xí)慣性將數(shù)據(jù)庫(kù)類(lèi)型分為兩類(lèi),關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)。項(xiàng)目知識(shí)導(dǎo)入1、關(guān)系型數(shù)據(jù)庫(kù)這是目前至今主流的數(shù)據(jù)庫(kù)類(lèi)型,其對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)模型就是關(guān)系型模型,數(shù)據(jù)以表格形式存儲(chǔ),字段關(guān)聯(lián)數(shù)據(jù)。二維表結(jié)構(gòu)是非常貼近邏輯世界的一個(gè)概念,它更容易理解,這是關(guān)系型數(shù)據(jù)庫(kù)能夠成為主流的其中一個(gè)重要原因。通過(guò)SQL進(jìn)行表與表之間的連接查詢(xún)非常的方便。缺點(diǎn):海量數(shù)據(jù)下,對(duì)一張表的查詢(xún)會(huì)顯得很力不從心,這是因?yàn)閿?shù)據(jù)的存儲(chǔ)不具備特殊的數(shù)據(jù)結(jié)構(gòu),例如有些非關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)是類(lèi)似樹(shù)的結(jié)構(gòu),就使得查詢(xún)上具有天然的優(yōu)勢(shì)。隨著大數(shù)據(jù)時(shí)代的來(lái)臨,海量數(shù)據(jù)下,傳統(tǒng)的關(guān)系型數(shù)據(jù)的效率問(wèn)題就會(huì)被逐漸放大。項(xiàng)目知識(shí)導(dǎo)入2、非關(guān)系型數(shù)據(jù)庫(kù)非關(guān)系型數(shù)據(jù)庫(kù)也被稱(chēng)為NoSQL數(shù)據(jù)庫(kù),它泛指所有非關(guān)系型數(shù)據(jù)庫(kù)。非關(guān)系型數(shù)據(jù)庫(kù)種類(lèi)有很多,列舉其中較為流行的幾種。
(1)鍵值(Key-Value)存儲(chǔ)數(shù)據(jù)庫(kù)
如:Memcached、Redis、MemcacheDB、BerkeleyDB
(2)列存儲(chǔ)(Column-oriented)數(shù)據(jù)庫(kù):如:Hbase(/p/131626000)
圖1-1傳統(tǒng)的行存儲(chǔ)數(shù)據(jù)庫(kù)結(jié)構(gòu)圖1-2列存儲(chǔ)數(shù)據(jù)庫(kù)結(jié)構(gòu)項(xiàng)目知識(shí)導(dǎo)入2、非關(guān)系型數(shù)據(jù)庫(kù)
(3)面向文檔數(shù)據(jù)庫(kù)
旨在將半結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)為文檔,其中文檔包括XML、YAML、JSON、BSON、office文檔等。如:MongoDB、CouchDB。項(xiàng)目知識(shí)導(dǎo)入四、數(shù)據(jù)庫(kù)運(yùn)維常見(jiàn)工作內(nèi)容環(huán)境部署
數(shù)據(jù)備份/恢復(fù)監(jiān)控故障處理性能優(yōu)化容災(zāi)升級(jí)/遷移安全管理項(xiàng)目知識(shí)導(dǎo)入五、數(shù)據(jù)庫(kù)工程師(DBA)職位及其職責(zé)一般意義上的數(shù)據(jù)庫(kù)工程師只是負(fù)責(zé)數(shù)據(jù)庫(kù)的運(yùn)營(yíng)和維護(hù),包括數(shù)據(jù)庫(kù)的安裝、監(jiān)控、備份、恢復(fù)等基本工作。但是對(duì)于軟件開(kāi)發(fā)企業(yè)來(lái)說(shuō),數(shù)據(jù)庫(kù)工程師職責(zé)比這個(gè)大得多,需要覆蓋產(chǎn)品從需求設(shè)計(jì)、測(cè)試到交付上線(xiàn)的整個(gè)生命周期,在此過(guò)程中不僅要負(fù)責(zé)數(shù)據(jù)庫(kù)管理系統(tǒng)的搭建和運(yùn)維,更要參與到前期的數(shù)據(jù)庫(kù)設(shè)計(jì),中期的數(shù)據(jù)庫(kù)測(cè)試和后期的數(shù)據(jù)庫(kù)容量管理和性能優(yōu)化。項(xiàng)目知識(shí)導(dǎo)入六、數(shù)據(jù)庫(kù)運(yùn)維發(fā)展階段
1.人工運(yùn)維
有關(guān)數(shù)據(jù)庫(kù)的部署,監(jiān)控,SQL上線(xiàn)或是故障處理等一些操作均為人工完成。DBA利用各種命令行完成數(shù)據(jù)庫(kù)的整體支撐及運(yùn)維工作2.工具運(yùn)維
嘗試將使用頻次高的流程性腳本結(jié)合自身經(jīng)驗(yàn)轉(zhuǎn)換包裝成常用運(yùn)維工具,同時(shí),圍繞CMDB(配置管理數(shù)據(jù)庫(kù))對(duì)資產(chǎn),日志及服務(wù)進(jìn)行基礎(chǔ)管理。項(xiàng)目知識(shí)導(dǎo)入六、數(shù)據(jù)庫(kù)運(yùn)維發(fā)展階段3.平臺(tái)運(yùn)維
在工具時(shí)代的基礎(chǔ)之上,運(yùn)維平臺(tái)完善了更加多樣化的管理工具,并將管理平臺(tái)以可視化、可操作化頁(yè)面的形式展現(xiàn)在用戶(hù)眼前,這是數(shù)據(jù)庫(kù)運(yùn)維的高級(jí)自動(dòng)化時(shí)期。4、智能運(yùn)維
在智能化的數(shù)據(jù)庫(kù)運(yùn)維時(shí)代,傳統(tǒng)的DBA工作也不再需要了,DBA已轉(zhuǎn)型成智能運(yùn)維平臺(tái)的構(gòu)建者。數(shù)據(jù)庫(kù)的智能運(yùn)維集成了實(shí)用的機(jī)器學(xué)習(xí)算法,最終實(shí)現(xiàn)數(shù)據(jù)庫(kù)的自我管理,自動(dòng)感知、自動(dòng)決策、自動(dòng)執(zhí)行,自動(dòng)閉環(huán),無(wú)須人為干預(yù),最大限度提升資源利用率以及安全性和可靠性。項(xiàng)目知識(shí)導(dǎo)入七、數(shù)據(jù)庫(kù)運(yùn)維發(fā)展趨勢(shì)親臨現(xiàn)場(chǎng)人工命令式腳本工具化隱身幕后智能診斷自動(dòng)排障傳統(tǒng)運(yùn)維(人工救火)智能運(yùn)維(服務(wù)自治)項(xiàng)目任務(wù)分解任務(wù)1-1:了解數(shù)據(jù)庫(kù)工程師職位要求及就業(yè)前景任務(wù)說(shuō)明
隨著現(xiàn)代企業(yè)的數(shù)據(jù)存儲(chǔ)需求日益增長(zhǎng),由常見(jiàn)的單機(jī)數(shù)據(jù)庫(kù)到分布式數(shù)據(jù)庫(kù);由關(guān)系數(shù)據(jù)到非關(guān)系數(shù)據(jù)。大數(shù)據(jù)管理工作已成企業(yè)運(yùn)營(yíng)的常態(tài),更成為企業(yè)數(shù)字化轉(zhuǎn)型的助力。而隨著企業(yè)數(shù)字化轉(zhuǎn)型的深入,企業(yè)亟待解決的是數(shù)字化能力的提升。像天天電器商場(chǎng)這樣需要專(zhuān)職數(shù)據(jù)庫(kù)運(yùn)維技術(shù)人員(數(shù)據(jù)庫(kù)工程師)的企業(yè)將會(huì)越來(lái)越多。
本任務(wù)要求想從事數(shù)據(jù)庫(kù)工程師職位工作的你,通過(guò)相關(guān)就業(yè)招聘網(wǎng)站,搜索并了解數(shù)據(jù)庫(kù)工程師職位的基本能力要求和就業(yè)前景。任務(wù)實(shí)施過(guò)程項(xiàng)目任務(wù)分解任務(wù)1-2:了解國(guó)內(nèi)數(shù)據(jù)庫(kù)運(yùn)維管理平臺(tái)任務(wù)說(shuō)明
近年來(lái),隨著大數(shù)據(jù)、機(jī)器學(xué)習(xí)等技術(shù)的發(fā)展,數(shù)據(jù)庫(kù)運(yùn)維工作也逐漸向自動(dòng)化、智能化趨勢(shì)發(fā)展。你也很快了解到國(guó)內(nèi)市場(chǎng)有很多可用的數(shù)據(jù)庫(kù)運(yùn)維平臺(tái)。通過(guò)綜合的第三方數(shù)據(jù)庫(kù)運(yùn)維平臺(tái),不僅能減輕運(yùn)維工作量,而且能夠充分利用平臺(tái)的巨大運(yùn)維知識(shí)庫(kù),解決在運(yùn)維過(guò)程中出現(xiàn)的疑難雜證,實(shí)現(xiàn)企業(yè)數(shù)據(jù)庫(kù)的安全、穩(wěn)定、高效地運(yùn)行,真正實(shí)現(xiàn)企業(yè)數(shù)據(jù)價(jià)值最大化。本任務(wù)要求熟悉國(guó)內(nèi)常見(jiàn)的提供數(shù)據(jù)庫(kù)運(yùn)維服務(wù)的企業(yè),了解其提供的主要產(chǎn)品和服務(wù)內(nèi)容。任務(wù)實(shí)施過(guò)程數(shù)據(jù)庫(kù)運(yùn)維與管理項(xiàng)目2安裝和配置MySQL數(shù)據(jù)庫(kù)教學(xué)目標(biāo)知識(shí)目標(biāo)了解MySQL數(shù)據(jù)庫(kù)發(fā)展歷史及特點(diǎn)掌握MySQL命令行工具的使用掌握MySQL
Workbench的使用掌握MySQL常用的配置內(nèi)容能力目標(biāo)能在Linux平臺(tái)下完成MySQL數(shù)據(jù)庫(kù)部署能在Windows平臺(tái)下完成MySQL數(shù)據(jù)庫(kù)部署能用第三方運(yùn)維平臺(tái)完成數(shù)據(jù)庫(kù)自動(dòng)部署素養(yǎng)目標(biāo)安全意識(shí)能力職業(yè)規(guī)范操作自學(xué)能力思政目標(biāo)民族自豪感國(guó)產(chǎn)軟件振興的使命擔(dān)當(dāng)項(xiàng)目2安裝和配置MySQL數(shù)據(jù)庫(kù)項(xiàng)目場(chǎng)景:你在招聘網(wǎng)站上看到了天天電器公司發(fā)布的招聘信息,并了解到該公司大多數(shù)的業(yè)務(wù)系統(tǒng)使用的數(shù)據(jù)庫(kù)系統(tǒng)是MySQL。所以,你需要首先掌握在不同平臺(tái)環(huán)境下完成MySQL數(shù)據(jù)庫(kù)服務(wù)器的部署工作。接下來(lái),請(qǐng)你按照任務(wù)要求來(lái)完成在不同環(huán)境平臺(tái)下的MySQL數(shù)據(jù)庫(kù)服務(wù)器的安裝和配置工作。項(xiàng)目知識(shí)導(dǎo)入一、MySQL8.01.應(yīng)用版本(1)MySQLCommunityServer:MySQL的社區(qū)版本,開(kāi)源免費(fèi),但不提供官方技術(shù)支持。(2)MySQLEnterpriseEdition:MySQL的企業(yè)版本,需付費(fèi),可以試用30天。(3)MySQLCluster集群版,開(kāi)源免費(fèi)??蓪讉€(gè)MySQLServer封裝成一個(gè)Server。(4)MySQLClusterCGE高級(jí)集群版,需付費(fèi)。(5)MySQLWorkbench(GUITOOL)一款專(zhuān)為MySQL設(shè)計(jì)的ER/數(shù)據(jù)庫(kù)建模工具。2.文件系統(tǒng)階段。項(xiàng)目知識(shí)導(dǎo)入一、MySQL8.02.MySQL8.0新特性
(1)性能:MySQL8.0的速度要比MySQL5.7快很多。項(xiàng)目知識(shí)導(dǎo)入2.MySQL8.0新特性
(2)改進(jìn)了NoSQL的存儲(chǔ)。
(3)新增了一個(gè)叫窗口函數(shù)的概念,它可以用來(lái)實(shí)現(xiàn)若干新的查詢(xún)方式。(4)隱藏索引。
(5)降序索引。
(6)通用表表達(dá)式(CommonTableExpressionsCTE)。(7)UTF-8:使用
utf8mb4作為MySQL的默認(rèn)字符集。(8)JSON:MySQL8.0大幅改進(jìn)了對(duì)JSON的支持(9)可靠性:InnoDB表上的DDL也可以實(shí)現(xiàn)事務(wù)完整性(10)高可用性:InnoDB集群為你的數(shù)據(jù)庫(kù)提供集成的原生HA解決方案(11)安全性:對(duì)OpenSSL的改進(jìn)、新的默認(rèn)身份驗(yàn)證、SQL角色、密碼強(qiáng)度、授權(quán)項(xiàng)目知識(shí)導(dǎo)入二、MySQL命令行實(shí)用程序命令名稱(chēng)命令別稱(chēng)命令含義clear\c清除當(dāng)前輸入語(yǔ)句connect\r連接到服務(wù)器,可選參數(shù)為數(shù)據(jù)庫(kù)和主機(jī)delimiter\d設(shè)置語(yǔ)句分隔符ego\G發(fā)送命令到MySQL服務(wù)器,并顯示結(jié)果exit\q退出MySQL命令行,同quitgo\g發(fā)送命令到MySQL服務(wù)器help\h顯示幫助print\p打印當(dāng)前命令prompt\R改變MySQL提示信息quit\q退出MySQL命令行source\.執(zhí)行一個(gè)SQL腳本文件,以一個(gè)文件名作為參數(shù)status\s獲取MySQL服務(wù)的狀態(tài)信息tee\T設(shè)置輸出文件,將所有信息輸出至指定文件中use\u選擇一個(gè)數(shù)據(jù)庫(kù)使用,如:usetest;其中test為數(shù)據(jù)庫(kù)名項(xiàng)目知識(shí)導(dǎo)入三、MySQLWorkbench
MySQLWorkbench是一款專(zhuān)為MySQL設(shè)計(jì)的集成化桌面軟件,是可視化數(shù)據(jù)庫(kù)設(shè)計(jì)軟件,也是下一代的可視化數(shù)據(jù)庫(kù)設(shè)計(jì)、管理的工具,它為數(shù)據(jù)庫(kù)管理員和開(kāi)發(fā)人員提供了一整套可視化的數(shù)據(jù)庫(kù)操作環(huán)境,主要功能有數(shù)據(jù)庫(kù)設(shè)計(jì)與模型建立、SQL開(kāi)發(fā)(取代MySQLQueryBrowser)、數(shù)據(jù)庫(kù)管理(取代MySQLAdministrator)。它同時(shí)有開(kāi)源和商業(yè)化兩個(gè)版本,可從官網(wǎng)下載
。項(xiàng)目知識(shí)導(dǎo)入四、MySQL配置解析配置項(xiàng)含義basedir=path使用給定目錄作為根目錄(安裝目錄)datadir=path從給定目錄讀取數(shù)據(jù)庫(kù)文件pid-file=filename為mysqld程序指定一個(gè)存放進(jìn)程ID的文件(僅適用于UNIX/Linux系統(tǒng));Init-V腳本需要使用這個(gè)文件里的進(jìn)程ID結(jié)束mysqld進(jìn)程socket=filename為MySQL客戶(hù)程序與服務(wù)器之間的本地通信指定一個(gè)套接字文件(僅適用于UNIX/Linux系統(tǒng);默認(rèn)設(shè)置一般是/var/lib/mysql/mysql.sock文件)。在Windows環(huán)境下,如果MySQL客戶(hù)與服務(wù)器是通過(guò)命名管道進(jìn)行通信的,–sock選項(xiàng)給出的將是該命名管道的名字(默認(rèn)設(shè)置是MySQL)port=n為MySQL程序指定一個(gè)TCP/IP通信端口(通常是3306端口)user=namemysqld程序在啟動(dòng)后將在給定UNIX/Linux賬戶(hù)下執(zhí)行;mysqld必須從root賬戶(hù)啟動(dòng)才能在啟動(dòng)后切換到另一個(gè)賬戶(hù)下執(zhí)行;mysqld_safe腳本將默認(rèn)使用–user=mysql選項(xiàng)來(lái)啟動(dòng)mysqld程序項(xiàng)目知識(shí)導(dǎo)入四、MySQL配置解析配置項(xiàng)含義slow_query_log=1/0是否開(kāi)啟慢查詢(xún)?nèi)罩荆?表示開(kāi)啟,0表示關(guān)閉max_connections=nMySQL服務(wù)器同時(shí)處理的數(shù)據(jù)庫(kù)連接的最大數(shù)量(默認(rèn)設(shè)置是100)max_connect_errors=n
設(shè)置每個(gè)主機(jī)的連接請(qǐng)求異常中斷的最大次數(shù),當(dāng)超過(guò)該次數(shù),MYSQL服務(wù)器將禁止host的連接請(qǐng)求character-set-server=utf8
設(shè)置數(shù)據(jù)庫(kù)服務(wù)器默認(rèn)編碼utf-8log-warnings=1/0默認(rèn)為1,表示啟用警告信息記錄日志,不需要置0即可,大于1時(shí)表示將錯(cuò)誤或者失敗連接記錄日志default-storage-engine=InnoDB默認(rèn)數(shù)據(jù)庫(kù)引擎,MySQL8默認(rèn)為InnoDB項(xiàng)目任務(wù)分解任務(wù)2-1:在Linux系統(tǒng)下安裝配置MySQL任務(wù)說(shuō)明
MySQL支持多個(gè)系統(tǒng),不同系統(tǒng)下的安裝和配置和過(guò)程也不盡相同。考慮到實(shí)際應(yīng)用中的環(huán)境多數(shù)是Linux系統(tǒng),所以本任務(wù)要求在LinuxCentOS7系統(tǒng)下完成安裝配置MySQL8.0社區(qū)版(Community)產(chǎn)品的任務(wù)。任務(wù)實(shí)施過(guò)程項(xiàng)目任務(wù)分解任務(wù)2-2:登錄、退出MySQL服務(wù)器任務(wù)說(shuō)明
安裝完MySQL之后,就可以登錄MySQL服務(wù)器進(jìn)行管理。本任務(wù)要求使用root賬戶(hù)的臨時(shí)密碼進(jìn)行登錄,并更改root賬戶(hù)密碼。任務(wù)實(shí)施過(guò)程項(xiàng)目任務(wù)分解任務(wù)2-3:在Windows系統(tǒng)下安裝配置MySQL任務(wù)說(shuō)明
在生產(chǎn)環(huán)境中,MySQL一般部署在Linux系統(tǒng)上。當(dāng)然,MySQL也支持Windows系統(tǒng)。本任務(wù)要求完成在Windows系統(tǒng)中安裝和配置MySQL。任務(wù)實(shí)施過(guò)程項(xiàng)目任務(wù)分解任務(wù)2-4:第三方運(yùn)維平臺(tái)下的自動(dòng)化部署任務(wù)說(shuō)明
大多數(shù)的數(shù)據(jù)庫(kù)運(yùn)維平臺(tái)都有數(shù)據(jù)庫(kù)的自動(dòng)部署功能,如杭州美創(chuàng)科技有限公司(以下簡(jiǎn)稱(chēng)“美創(chuàng)科技”)的數(shù)據(jù)庫(kù)運(yùn)行安全管理平臺(tái)。本任務(wù)要求基于“美創(chuàng)”產(chǎn)品平臺(tái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)系統(tǒng)的自動(dòng)化部署功能。任務(wù)實(shí)施過(guò)程常見(jiàn)問(wèn)題解決問(wèn)題1.啟動(dòng)MySQL服務(wù)時(shí)出現(xiàn)“ERROR2002(HY000):Can'tconnecttolocalMySQLserverthroughsocket'/tmp/mysql.sock'錯(cuò)誤。原因分析:
首先了解mysql.sock的作用。Mysql有兩種連接方式。(1)TCP/IP(2)socket對(duì)mysql.sock來(lái)說(shuō),其作用是程序與MySQL處于同一臺(tái)機(jī)器,發(fā)起本地連接時(shí)可用,是一個(gè)臨時(shí)文件,啟動(dòng)MySQL后才會(huì)生成。報(bào)錯(cuò)的原因就是,MySQL將其放在/tmp目錄,而linux將其放在/var/mysql目錄。解決方案:本問(wèn)題解決起來(lái)十分簡(jiǎn)單,只需要?jiǎng)?chuàng)建一個(gè)軟鏈接即可。1.創(chuàng)建目錄sudomkdir/var/mysql(如果/var/下有mysql目錄,則不需創(chuàng)建)2.創(chuàng)建軟鏈接sudoln-s/tmp/mysql.sock/var/mysql/mysql.sock過(guò)程中如果提示“l(fā)n:creatingsymboliclink/data/mysqldata/mysql.sock'to/tmp/mysql.sock’:Fileexists”,則刪除之前的mysql.sock文件,然后重新啟動(dòng)MySQL服務(wù)。
常見(jiàn)問(wèn)題解決問(wèn)題2.如何刪除CentOS7自帶的MariaDB數(shù)據(jù)庫(kù)?原因分析:CentOS7系統(tǒng)里自帶安裝MariaDB數(shù)據(jù)庫(kù),如果不需要的話(huà),可以考慮將其刪除,防止在安裝部署MySQL時(shí)出現(xiàn)不可預(yù)知問(wèn)題。解決方案:1.查詢(xún)所安裝的MariaDB組件rpm-qa|grepMaria*2.卸載數(shù)據(jù)庫(kù)yum-yremovemari*3.刪除數(shù)據(jù)庫(kù)文件rm-rf/var/lib/mysql/*常見(jiàn)問(wèn)題解決問(wèn)題3.Windows系統(tǒng)中,輸入數(shù)據(jù)庫(kù)初始化命令mysqld--initialize–insecure時(shí),會(huì)提示計(jì)算機(jī)中丟失vcruntime140_1.dll原因分析:此問(wèn)題由于缺少M(fèi)ySQL依賴(lài)的Windows庫(kù)導(dǎo)致。解決方案:下載安裝當(dāng)前最新版VisualC++RedistributableforVisualStudio2019,然后即可正常安裝Mysql?;蛘甙俣人阉鳌拔④洺S眠\(yùn)行庫(kù)合集2019”,安裝后可以正常安裝。數(shù)據(jù)庫(kù)運(yùn)維與管理項(xiàng)目3管理MySQL權(quán)限與安全教學(xué)目標(biāo)知識(shí)目標(biāo)了解MySQL權(quán)限管理原理掌握MySQL權(quán)限表掌握MySQL賬戶(hù)管理掌握MySQL權(quán)限管理能力目標(biāo)能根據(jù)用戶(hù)需求完成MySQL數(shù)據(jù)庫(kù)的賬戶(hù)管理能根據(jù)應(yīng)用場(chǎng)景完成MySQL數(shù)據(jù)庫(kù)的權(quán)限管理能完成MySQL數(shù)據(jù)庫(kù)的安全體系構(gòu)建素養(yǎng)目標(biāo)安全意識(shí)能力職業(yè)規(guī)范操作嚴(yán)謹(jǐn)細(xì)致思政目標(biāo)民族自豪感國(guó)產(chǎn)軟件振興的使命擔(dān)當(dāng)項(xiàng)目3管理MySQL權(quán)限與安全項(xiàng)目場(chǎng)景:天天電器商場(chǎng)的售后服務(wù)部門(mén)最近通過(guò)外包的方式開(kāi)發(fā)了一款售后服務(wù)登記系統(tǒng),外包的軟件開(kāi)發(fā)商需要在公司的服務(wù)器上部署MySQL的數(shù)據(jù)庫(kù)文件以提供數(shù)據(jù)共享服務(wù)。請(qǐng)你給外包開(kāi)發(fā)公司建立一個(gè)訪(fǎng)問(wèn)MySQL數(shù)據(jù)庫(kù)的賬戶(hù),使其可以部署數(shù)據(jù)庫(kù)文件,但是不能查看和改動(dòng)部署在MySQL服務(wù)器上的其他數(shù)據(jù)文件。項(xiàng)目知識(shí)導(dǎo)入一、權(quán)限表5個(gè)常用的控制權(quán)限的表,分別為:user表,db表,tables_priv表,columns_priv表和procs_priv表。1、user表:
存放賬戶(hù)信息及全局級(jí)別(所有數(shù)據(jù)庫(kù))權(quán)限,決定了來(lái)自哪些主機(jī)的哪些賬戶(hù)可以訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)實(shí)例,如果有全局權(quán)限則意味著對(duì)所有數(shù)據(jù)庫(kù)都有此權(quán)限。示例:查看user表結(jié)構(gòu)mysql>usemysql;mysql>descuser;項(xiàng)目知識(shí)導(dǎo)入(1)賬號(hào)字段User:賬戶(hù)名稱(chēng);Host:允許訪(fǎng)問(wèn)的客戶(hù)端IP地址或主機(jī)地址,為“%”時(shí),表示所有客戶(hù)端的賬戶(hù);Host+Useruser表的主鍵,用于區(qū)分MySQL中的賬戶(hù)。(2)權(quán)限字段以“_priv”結(jié)尾的字段;字段保存了賬戶(hù)的全局權(quán)限,如“Select_priv”查詢(xún)權(quán)限、“Insert_priv”插入權(quán)限等;數(shù)據(jù)類(lèi)型都是ENUM枚舉類(lèi)型,取值為N或Y,N表示無(wú)對(duì)應(yīng)權(quán)限,Y則表示擁有該權(quán)限;項(xiàng)目知識(shí)導(dǎo)入(3)安全連接字段ssl_type:用于保存安全連接的類(lèi)型ssl_cipher:用于保存安全加密連接的特定密碼x509_issuer:保存由CA簽發(fā)的有效的X509證書(shū)x509_subject:保存包含主題的有效的X509證書(shū)(4)資源限制字段:保存賬戶(hù)對(duì)可使用的服務(wù)器資源的限制max_questions:每小時(shí)允許用戶(hù)執(zhí)行查詢(xún)操作的最多次數(shù)。max_updates:每小時(shí)允許用戶(hù)執(zhí)行更新操作的最多次數(shù)。max_connections:每小時(shí)允許用戶(hù)建立連接的最多次數(shù)。max_user_connections:允許單個(gè)用戶(hù)同時(shí)建立連接的最多數(shù)量。項(xiàng)目知識(shí)導(dǎo)入(5)身份驗(yàn)證字段:保存賬戶(hù)的身份驗(yàn)證信息plugin:用于指定賬戶(hù)的驗(yàn)證插件名稱(chēng);authentication_string:根據(jù)對(duì)應(yīng)的驗(yàn)證插件對(duì)明文密碼加密后的字符串;password_expired:密碼是否過(guò)期;password_last_changed:密碼最后修改時(shí)間;password_lifetime:密碼的有效期;Password_reuse_history:修改密碼不允許與最近幾次使用的密碼重復(fù);Password_reuse_time:修改密碼不允許與最近多少天使用的密碼重復(fù);Password_require_current:修改密碼是否需要提供當(dāng)前的登錄密碼;(6)賬戶(hù)鎖定字段:account_locked:保存當(dāng)前賬戶(hù)是否是鎖定狀態(tài),當(dāng)為Y時(shí),即賬戶(hù)鎖定,不能用于連接到服務(wù)器;項(xiàng)目知識(shí)導(dǎo)入二、賬戶(hù)管理1、建立賬戶(hù)
語(yǔ)法:CREATEUSER[IFNOTEXISTS]user[auth_option][,user[auth_option]]...DEFAULTROLErole[,role]...[REQUIRE{NONE|tls_option[[AND]tls_option]...}][WITHresource_option[resource_option]...][password_option|lock_option]...項(xiàng)目知識(shí)導(dǎo)入選項(xiàng)說(shuō)明默認(rèn)值user賬戶(hù)名,由“賬戶(hù)名@主機(jī)地址”組成
auth_option賬戶(hù)身份驗(yàn)證選項(xiàng),即加密插件由default_authentication_plugin系統(tǒng)變量定義的插件進(jìn)行身份驗(yàn)證role角色NONEtls_option加密連接協(xié)議選項(xiàng)NONEresource_option資源控制選項(xiàng)N(表示無(wú)限制)password_option密碼管理選項(xiàng)PASSWORDEXPIREDEFAULTlock_option賬戶(hù)鎖定選項(xiàng)ACCOUNTUNLOCK語(yǔ)法說(shuō)明項(xiàng)目知識(shí)導(dǎo)入二、賬戶(hù)管理1、建立賬戶(hù)示例1:建立簡(jiǎn)單賬戶(hù)示例2:建立有密碼的賬戶(hù)mysql>createuser'user1';mysql>CREATEUSER'user1'IDENTIFIEDby'123456';mysql>SELECTuser,hostFROMuser;mysql>SELECTplugin,authentication_stringFROMuserWHEREuser='user1';#查看明文密碼加密后的效果#查詢(xún)用戶(hù)表中的用戶(hù)信息項(xiàng)目知識(shí)導(dǎo)入二、賬戶(hù)管理1、建立賬戶(hù)示例3:同時(shí)創(chuàng)建多個(gè)賬戶(hù)示例4:建立賬戶(hù)并設(shè)置可操作資源范圍mysql>CREATEUSER->'user3'IDENTIFIEDBY'333333',->'user4'IDENTIFIEDBY'444444';;mysql>CREATEUSER->'user5'IDENTIFIEDBY'555555'->WITHMAX_UPDATES_PER_HOUR2;#建立一個(gè)名為“user5”的賬戶(hù),限制其每小時(shí)最多可以更新2次項(xiàng)目知識(shí)導(dǎo)入二、賬戶(hù)管理 2、修改賬戶(hù)語(yǔ)法:ALTERUSER[IFNOTEXISTS]user[auth_option][,user[auth_option]]...DEFAULTROLErole[,role]...[REQUIRE{NONE|tls_option[[AND]tls_option]...}][WITHresource_option[resource_option]...][password_option|lock_option]...項(xiàng)目知識(shí)導(dǎo)入二、賬戶(hù)管理 2、修改賬戶(hù)示例1:為登錄的當(dāng)前賬戶(hù)修改密碼示例2:為指定的賬戶(hù)修改密碼示例3:修改賬戶(hù)驗(yàn)證
將user1的賬戶(hù)加密插件修改為“caching_sha2_password”,密碼修改“User1@111”,要求:每180天選擇一個(gè)新密碼;并啟用登錄失敗跟蹤(三個(gè)連續(xù)的錯(cuò)誤密碼將導(dǎo)致臨時(shí)賬戶(hù)鎖定兩天)mysql>ALTERUSERUSER()IDENTIFIEDBY'Hello123.';mysql>ALTERUSER'user1'IDENTIFIEDby'HelloUser1.';mysql>ALTERUSER'user1'@'%'->IDENTIFIEDWITHcaching_sha2_passwordBY'User1@111'->PASSWORDEXPIREINTERVAL180DAY->FAILED_LOGIN_ATTEMPTS3PASSWORD_LOCK_TIME2;項(xiàng)目知識(shí)導(dǎo)入二、賬戶(hù)管理
2、修改賬戶(hù)示例4:修改賬戶(hù)狀態(tài)之鎖定賬戶(hù)示例5:修改賬戶(hù)狀態(tài)之解鎖賬戶(hù)示例6:設(shè)置賬戶(hù)的資源限制——設(shè)置user1賬戶(hù)最多可同時(shí)建立兩個(gè)連接
mysql>ALTERUSER'user1'@'%'ACCOUNTLOCK;mysql>ALTERUSER'user1'@'%'ACCOUNTUNLOCK;mysql>ALTERUSER'user1'@'%‘
->WITHmax_user_connections2;
項(xiàng)目知識(shí)導(dǎo)入二、賬戶(hù)管理
3、刪除賬戶(hù)
示例1:刪除user5賬戶(hù)語(yǔ)法:DROPUSER[IFEXISTS]user[,user]…;mysql>DROPUSER'user5';
項(xiàng)目知識(shí)導(dǎo)入三、權(quán)限管理(一)MySQL的各種權(quán)限權(quán)限名稱(chēng)權(quán)限級(jí)別權(quán)限描述SELECT全局、數(shù)據(jù)庫(kù)、表、列啟用SELECTUPDATE全局、數(shù)據(jù)庫(kù)、表、列啟用UPDATEDELETE全局、數(shù)據(jù)庫(kù)、表啟用DELETEINSERT全局、數(shù)據(jù)庫(kù)、表、列啟用INSERTSHOWDATABASES全局啟用SHOWDATABASES以顯示所有數(shù)據(jù)庫(kù)SHOWVIEW全局、數(shù)據(jù)庫(kù)、表啟用SHOWCREATEVIEWPROCESS全局使賬戶(hù)可以使用查看所有進(jìn)程SHOWPROCESSLIST1.數(shù)據(jù)權(quán)限數(shù)據(jù)權(quán)限主要是針對(duì)數(shù)據(jù)庫(kù)表中的數(shù)據(jù)行的操作權(quán)限項(xiàng)目知識(shí)導(dǎo)入權(quán)限名稱(chēng)權(quán)限級(jí)別權(quán)限描述DROP全局、數(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ù)啟用CREATETEMPORARYTABLESCREATEVIEW全局、數(shù)據(jù)庫(kù)、表啟用創(chuàng)建或修改視圖ALTER全局、數(shù)據(jù)庫(kù)、表啟用ALTERTABLEALTERROUTINE全局、數(shù)據(jù)庫(kù)、存儲(chǔ)過(guò)程啟用刪除或修改存儲(chǔ)過(guò)程INDEX全局、數(shù)據(jù)庫(kù)、表啟用創(chuàng)建或刪除索引TRIGGER全局、數(shù)據(jù)庫(kù)、表啟用創(chuàng)建、修改或刪除觸發(fā)器REFERENCES全局、數(shù)據(jù)庫(kù)、表、列啟用創(chuàng)建外鍵2.結(jié)構(gòu)權(quán)限結(jié)構(gòu)權(quán)限主要針對(duì)數(shù)據(jù)庫(kù)表的結(jié)構(gòu)或數(shù)據(jù)庫(kù)的對(duì)象進(jìn)行操作的權(quán)限項(xiàng)目知識(shí)導(dǎo)入3.管理權(quán)限這里的管理權(quán)限指的是通常只有管理員才有的管理權(quán)限權(quán)限名稱(chēng)權(quán)限級(jí)別權(quán)限描述SUPER全局能夠使用如其他行政業(yè)務(wù)CHANGEMASTERTO,KILL,PURGEBINARYLOGS,SETGLOBAL,和中mysqladmin調(diào)試命令CREATEUSER全局允許使用CREATEUSER,DROPUSER,RENAMEUSER,和REVOKEALLPRIVILEGESGRANTOPTION全局、數(shù)據(jù)庫(kù)、表、存儲(chǔ)過(guò)程、代理允許授予或刪除賬戶(hù)權(quán)限RELOAD全局啟用FLUSH操作PROXY全局啟用賬戶(hù)代理REPLICATIONCLIENT全局使賬戶(hù)能夠詢(xún)問(wèn)主服務(wù)器或從服務(wù)器在哪里REPLICATIONSLAVE全局使復(fù)制從屬服務(wù)器能夠從主服務(wù)器讀取二進(jìn)制日志事件SHUTDOWN全局啟用mysqladminshutdown使用LOCKTABLES全局、數(shù)據(jù)庫(kù)啟用LOCKTABLES對(duì)您擁有SELECT特權(quán)的on表的使用項(xiàng)目知識(shí)導(dǎo)入三、權(quán)限管理(二)查看權(quán)限語(yǔ)法:SHOWGRANTS[FOR賬戶(hù)]項(xiàng)目知識(shí)導(dǎo)入三、權(quán)限管理(三)授予權(quán)限GRANTpriv_type[(column_list)][,priv_type[(column_list)]]...ON[object_type]priv_levelTOuser_or_role[,user_or_role]...[WITHGRANTOPTION][ASuser[WITHROLEDEFAULT|NONE|ALL|ALLEXCEPTrole[,role]...|role[,role]...]]}priv_type:權(quán)限類(lèi)型,即表3-3、表3-4、表3-5中所列權(quán)限名稱(chēng)。column_list:字段列表用于設(shè)置列權(quán)限object_type:權(quán)限作用的目標(biāo)類(lèi)型,默認(rèn)為T(mén)ABLE,其值還可以是FUNCTION(函數(shù))、PROCEDURE(存儲(chǔ)過(guò)程)。priv_level:權(quán)限級(jí)別,user_or_role:賬戶(hù)或角色WITHGRANTOPTION:表示當(dāng)前賬戶(hù)可以為其他賬戶(hù)進(jìn)行授權(quán)。項(xiàng)目知識(shí)導(dǎo)入三、權(quán)限管理(三)授予權(quán)限示例1:授予user1賬戶(hù)對(duì)test數(shù)據(jù)庫(kù)中的student表的SELECT權(quán)限,以及對(duì)name和phone字段的插入權(quán)限。示例2:授予user1賬戶(hù)對(duì)test數(shù)據(jù)庫(kù)所有的權(quán)限mysql>GRANTSELECT,INSERT(name,phone)ONtest.studenttouser1;mysql>GRANTALLONtest.*touser1;mysql>SHOWGRANTSFORuser1;項(xiàng)目知識(shí)導(dǎo)入三、權(quán)限管理(四)收回權(quán)限語(yǔ)法:REVOKEpriv_type[(column_list)][,priv_type[(column_list)]]...ON[object_type]priv_levelFROMuser_or_role[,user_or_role]...項(xiàng)目知識(shí)導(dǎo)入三、權(quán)限管理(四)收回權(quán)限示例1:收回user1賬戶(hù)對(duì)test數(shù)據(jù)庫(kù)student表的插入權(quán)限。示例2:收回user1賬戶(hù)所有的權(quán)限mysql>REVOKEINSERT(name,phone)ONtest.studentFROMuser1;mysql>REVOKEALLONtest.studentFROMuser1;mysql>SHOWGRANTSFORuser1;項(xiàng)目知識(shí)導(dǎo)入三、權(quán)限管理(五)刷新權(quán)限
刷新權(quán)限指的是從系統(tǒng)數(shù)據(jù)庫(kù)mysql中的權(quán)限表中重新加載賬戶(hù)的權(quán)限。這是因?yàn)镚RANT、CREATEUSER等操作會(huì)將服務(wù)器的緩存信息保存到內(nèi)存中,而REVOKE、DROPUSER操作并不會(huì)同步到內(nèi)存中。因此可能會(huì)造成服務(wù)器內(nèi)存的消耗,所以在REVOKE、DROPUSER操作后建議使用FLUSHPRIVILEGES重新加載賬戶(hù)的權(quán)限。具體的SQL語(yǔ)句如下。mysql>FLUSHPRIVILEGES;項(xiàng)目任務(wù)分解任務(wù)3-1:建立MySQL普通賬戶(hù)并用普通賬戶(hù)登錄任務(wù)說(shuō)明
安裝配置完MySQL之后需要?jiǎng)?chuàng)建普通賬戶(hù),盡管root賬戶(hù)具有最高權(quán)限,但還是需要普通賬戶(hù)進(jìn)行管理。本任務(wù)要求創(chuàng)建MySQL普通賬戶(hù)并用普通賬戶(hù)登錄。任務(wù)實(shí)施過(guò)程項(xiàng)目任務(wù)分解任務(wù)3-2:為MySQL普通賬戶(hù)授權(quán)數(shù)據(jù)庫(kù)的遠(yuǎn)程訪(fǎng)問(wèn)任務(wù)說(shuō)明
在上個(gè)任務(wù)中,創(chuàng)建了一個(gè)普通賬戶(hù),但是這個(gè)賬戶(hù)只限于本地登錄,不能用于遠(yuǎn)程訪(fǎng)問(wèn)。本任務(wù)要求為這個(gè)賬戶(hù)授權(quán)數(shù)據(jù)庫(kù)的遠(yuǎn)程訪(fǎng)問(wèn)。任務(wù)實(shí)施過(guò)程項(xiàng)目任務(wù)分解任務(wù)3-3:為MySQL普通賬戶(hù)授權(quán)數(shù)據(jù)庫(kù)表的讀寫(xiě)操作任務(wù)說(shuō)明
當(dāng)前這個(gè)普通賬戶(hù)被創(chuàng)建后沒(méi)有任何權(quán)限,如果要對(duì)數(shù)據(jù)庫(kù)表的內(nèi)容進(jìn)行增加和刪除等操作,則需要相應(yīng)的讀寫(xiě)權(quán)限。本任務(wù)要求對(duì)這個(gè)賬戶(hù)授予數(shù)據(jù)庫(kù)表的讀寫(xiě)權(quán)限。任務(wù)實(shí)施過(guò)程項(xiàng)目任務(wù)分解任務(wù)3-4:收回MySQL普通賬戶(hù)對(duì)特定數(shù)據(jù)庫(kù)的操作權(quán)限任務(wù)說(shuō)明
某些情況下,需要對(duì)普通賬戶(hù)進(jìn)行限制,限制對(duì)特定數(shù)據(jù)庫(kù)的操作。本任務(wù)要求收回這個(gè)普通賬戶(hù)權(quán)限對(duì)特定數(shù)據(jù)庫(kù)的操作權(quán)限。任務(wù)實(shí)施過(guò)程常見(jiàn)問(wèn)題解決問(wèn)題1.登錄時(shí)出現(xiàn)“ERROR1045(28000):Accessdeniedforuser:'root@localhost'(Usingpassword:YES)”類(lèi)似錯(cuò)誤。原因分析:出現(xiàn)這個(gè)報(bào)錯(cuò)代表當(dāng)前賬戶(hù)訪(fǎng)問(wèn)被拒絕,賬戶(hù)名或密碼錯(cuò)誤。解決方案:輸入正確的賬戶(hù)名密碼即可。常見(jiàn)問(wèn)題解決問(wèn)題2.登錄時(shí)出現(xiàn)“ERROR2003(HY000):Can’tconnecttoMySQLserveron‘5’(113)”類(lèi)似錯(cuò)誤。原因分析:出現(xiàn)這個(gè)報(bào)錯(cuò)代表主機(jī)ip輸入錯(cuò)誤。解決方案:輸入正確的主機(jī)ip即可。常見(jiàn)問(wèn)題解決問(wèn)題3.授權(quán)時(shí)出現(xiàn)“ERROR1044(42000):Accessdeniedforuser'hzmc'@'%'todatabase'mysql'”類(lèi)似錯(cuò)誤。原因分析:授權(quán)時(shí)時(shí)出現(xiàn)這個(gè)錯(cuò)誤,可能是當(dāng)前登錄的賬戶(hù)缺少withgrantoption權(quán)限,這個(gè)權(quán)限表示將這個(gè)權(quán)限授權(quán)給第三方的權(quán)限。解決方案:使用有withgrantoption這個(gè)權(quán)限的賬戶(hù)授權(quán)。數(shù)據(jù)庫(kù)運(yùn)維與管理項(xiàng)目4分析MySQL日志教學(xué)目標(biāo)知識(shí)目標(biāo)掌握MySQL錯(cuò)誤日志掌握MySQL一般查詢(xún)?nèi)罩菊莆誐ySQL慢查詢(xún)?nèi)罩菊莆誐ySQL二進(jìn)制日志能力目標(biāo)能根據(jù)錯(cuò)誤日志查找錯(cuò)誤原因能根據(jù)mysqldumpslow工具分析查詢(xún)數(shù)據(jù)庫(kù)性能能使用mysqlbinlog通過(guò)時(shí)間點(diǎn)恢復(fù)數(shù)據(jù)素養(yǎng)目標(biāo)安全意識(shí)能力職業(yè)規(guī)范操作嚴(yán)謹(jǐn)細(xì)致思政目標(biāo)民族自豪感國(guó)產(chǎn)軟件振興的使命擔(dān)當(dāng)項(xiàng)目4分析MySQL日志項(xiàng)目場(chǎng)景:小明前兩天剛應(yīng)聘了天天電器商場(chǎng)的數(shù)據(jù)庫(kù)管理員職位,負(fù)責(zé)帶他的技術(shù)主管就出差了,各個(gè)業(yè)務(wù)部門(mén)都打來(lái)電話(huà)反映部門(mén)的OA系統(tǒng)查詢(xún)數(shù)據(jù)有點(diǎn)慢,數(shù)據(jù)請(qǐng)求無(wú)法完成;甚至還有些部門(mén)因?yàn)檎`操作,把不該刪除的記錄不小心刪除了,請(qǐng)求恢復(fù)。弄得小明有點(diǎn)頭大,今天一大早,就接到銷(xiāo)售部門(mén)打來(lái)的電話(huà),反映OA系統(tǒng)登錄不了,出現(xiàn)“數(shù)據(jù)庫(kù)無(wú)法連接”的提示信息。小明要怎樣做才能解決這些問(wèn)題呢?項(xiàng)目知識(shí)導(dǎo)入在數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中,一般都會(huì)產(chǎn)生很多的日志信息,這些日志信息記錄著數(shù)據(jù)庫(kù)運(yùn)行工作的具體情況,幫助數(shù)據(jù)庫(kù)管理員追蹤在數(shù)據(jù)庫(kù)運(yùn)行期間發(fā)生過(guò)的各種事件。MySQL中的日志有6種,分別是錯(cuò)誤日志、一般查詢(xún)?nèi)罩?、慢查?xún)?nèi)罩?、二進(jìn)制日志、中繼日志和DDL日志。一、錯(cuò)誤日志錯(cuò)誤日志記錄MySQL服務(wù)在啟動(dòng)和停止時(shí)的正確及錯(cuò)誤信息,還記錄運(yùn)行過(guò)程中的錯(cuò)誤信息,是MySQL最重要的日志之一,當(dāng)數(shù)據(jù)庫(kù)由于出現(xiàn)任何故障導(dǎo)致無(wú)法正常使用時(shí),可以首先查看此日志。項(xiàng)目知識(shí)導(dǎo)入1、配置錯(cuò)誤日志組件MySQL8.0的錯(cuò)誤日志采用組件架構(gòu),通過(guò)不同的組件執(zhí)行日志的寫(xiě)入和過(guò)濾功能。系統(tǒng)變量log_error_services指定過(guò)濾組件、寫(xiě)入組件。查看MySQL8.0默認(rèn)的過(guò)濾組件和寫(xiě)入組件,語(yǔ)句如下。
mysql>SELECT@@GLOBAL.log_error_services;++|@@GLOBAL.log_error_services|++|log_filter_internal;log_sink_internal|++1rowinset(0.00sec)內(nèi)置過(guò)濾器組件內(nèi)置日志記錄器組件項(xiàng)目知識(shí)導(dǎo)入要啟用日志組件,應(yīng)首先使用命令I(lǐng)NSTALLCOMPONENT命令加載例1:使用系統(tǒng)日志編寫(xiě)器log_sink_syseventlog代替默認(rèn)編寫(xiě)器log_sink_internal,INSTALLCOMPONENT'file://component_log_sink_syseventlog';SETGLOBALlog_error_services='log_filter_internal;log_sink_syseventlog';例2:配置多個(gè)日志記錄器,除了默認(rèn)寫(xiě)入器之外還啟用系統(tǒng)日志寫(xiě)入器SETGLOBALlog_error_services='log_filter_internal;log_sink_internal;log_sink_syseventlog';項(xiàng)目知識(shí)導(dǎo)入2、配置錯(cuò)誤日志過(guò)濾錯(cuò)誤日志配置通常包括一個(gè)日志過(guò)濾器組件和一個(gè)或多個(gè)日志編寫(xiě)器組件。MySQL提供了以下錯(cuò)誤日志過(guò)濾組件。(1)log_filter_internal
此過(guò)濾器組件根據(jù)log_error_verbosity和log_error_suppression_list系統(tǒng)變量,結(jié)合日志事件優(yōu)先級(jí)和錯(cuò)誤代碼進(jìn)行錯(cuò)誤日志過(guò)濾。內(nèi)置并默認(rèn)啟用。(2)log_filter_dragnet
此過(guò)濾器組件根據(jù)用戶(hù)提供的規(guī)則,結(jié)合dragnet.log_error_filter_rules系統(tǒng)變量進(jìn)行錯(cuò)誤日志過(guò)濾。
項(xiàng)目知識(shí)導(dǎo)入3、基于優(yōu)先級(jí)的錯(cuò)誤日志過(guò)濾(log_filter_internal)錯(cuò)誤日志事件的優(yōu)先級(jí)分別為ERROR、WARNING或INFORMATION。由log_error_verbosity系統(tǒng)變量控制服務(wù)器日志的詳細(xì)程度。log_error_verbosity系統(tǒng)變量允許的值為1(僅錯(cuò)誤),2(錯(cuò)誤和警告),3(錯(cuò)誤,警告和信息),默認(rèn)值為3。在f文件中,可以配置log_error_verbosity系統(tǒng)變量[mysqld]log_error_verbosity=1#僅錯(cuò)誤消息
項(xiàng)目知識(shí)導(dǎo)入4、啟動(dòng)和設(shè)置錯(cuò)誤日志默認(rèn)開(kāi)啟錯(cuò)誤日志功能;錯(cuò)誤日志存儲(chǔ)在MySQL數(shù)據(jù)庫(kù)的數(shù)據(jù)文件夾下,通常名稱(chēng)為hostname.err;mysqld使用“--log-error=[file_name]”設(shè)置錯(cuò)誤日志文件;在f文件中配置log-error=/var/log/mysqld.log如果不知道錯(cuò)誤日志的位置,可以通過(guò)查看變量log_error來(lái)獲得;mysql>showvariableslike'log_error';項(xiàng)目知識(shí)導(dǎo)入5、查看錯(cuò)誤日志Linux下使用tail命令查看,如tail-3/var/log/mysqld.log;6、刪除錯(cuò)誤日志在MySQL中,可以使用mysqladmin命令來(lái)開(kāi)啟新的錯(cuò)誤日志,以保證MySQL服務(wù)器上的硬盤(pán)空間充足;mysql>mysqladmin-uroot-pflush-logs項(xiàng)目知識(shí)導(dǎo)入二、一般查詢(xún)?nèi)罩疽话悴樵?xún)?nèi)罩居涗浛蛻?hù)端的操作語(yǔ)句1.啟動(dòng)和設(shè)置一般查詢(xún)?nèi)罩就ㄟ^(guò)showvariableslike'general_log'命令查看一般查詢(xún)?nèi)罩臼欠翊蜷_(kāi)指定初始一般查詢(xún)?nèi)罩镜臓顟B(tài),需使用“--general_log[={0|1}]”使用“--general_log_file=file_name”指定日志文件名general_log全局變量設(shè)置為0(或OFF)禁用日志,設(shè)置為1(或ON)啟用日志
mysql>SETGLOBALgeneral_log='ON';2.查看一般查詢(xún)?nèi)罩就ㄟ^(guò)查看general_log_file變量來(lái)查看日志文件路徑。showvariableslike'general_log_file';項(xiàng)目知識(shí)導(dǎo)入3、刪除一般查詢(xún)?nèi)罩驹贛ySQL中,一般查詢(xún)?nèi)罩疚募儆谖谋疚募?,可以直接刪除,刪除后需要使用flushlogs命令重新生成一般查詢(xún)?nèi)罩疚募?/p>
項(xiàng)目知識(shí)導(dǎo)入三、慢查詢(xún)?nèi)罩韭樵?xún)?nèi)罩居糜谟涗浽贛ySQL中執(zhí)行時(shí)間超過(guò)指定時(shí)間的查詢(xún)語(yǔ)句。MySQL的慢查詢(xún)?nèi)罩臼桥挪閱?wèn)題SQL語(yǔ)句,以及檢查當(dāng)前MySQL性能的一個(gè)重要工具。查看慢查詢(xún)?nèi)罩臼欠駟?dòng)和超時(shí)設(shè)置項(xiàng)目知識(shí)導(dǎo)入1、啟動(dòng)和設(shè)置慢查詢(xún)?nèi)罩緦og-slow-queries選項(xiàng)和long_query_time選項(xiàng)加入配置文件的[mysqld]組中,配置內(nèi)容如下。
上述選項(xiàng)中的參數(shù)說(shuō)明如下。dir參數(shù)用于指定慢查詢(xún)?nèi)罩镜拇鎯?chǔ)路徑,如果不指定存儲(chǔ)路徑,慢查詢(xún)?nèi)罩緦⒛J(rèn)存儲(chǔ)到MySQL的數(shù)據(jù)目錄下。filename參數(shù)用于指定日志的文件名,日志文件的完整名稱(chēng)為filename-slow.log。如果不指定文件名,默認(rèn)文件名為hostname-slow.log,hostname是MySQL服務(wù)器的主機(jī)名。n參數(shù)是設(shè)定的時(shí)間值,該值的單位是秒。如果不設(shè)置long_query_time選項(xiàng),默認(rèn)時(shí)間為10秒。項(xiàng)目知識(shí)導(dǎo)入2、查看慢查詢(xún)?nèi)罩韭樵?xún)?nèi)罩疽彩且晕谋疚募男问酱鎯?chǔ)的,可以使用普通的文本文件查看工具來(lái)查看。內(nèi)容示例如下:Time:該查詢(xún)發(fā)生的時(shí)間。User@Host:發(fā)起該查詢(xún)的主機(jī)。Query_time:該查詢(xún)總共用了多少時(shí)間。Lock_time:在查詢(xún)過(guò)程中鎖定表的時(shí)間。Rows_sent:返回了多少行數(shù)據(jù)。Rows_examined:表掃描了多少行數(shù)據(jù)才得到結(jié)果。SETtimestamp:發(fā)生慢查詢(xún)時(shí)的時(shí)間戳。項(xiàng)目知識(shí)導(dǎo)入3、mysqldumpslow命令
龐大的慢查詢(xún)?nèi)罩疚募捎萌斯し治龊芾щy,可以使用MySQL自帶的mysqldumpslow命令來(lái)分析慢查詢(xún)?nèi)罩?。語(yǔ)法格式:項(xiàng)目知識(shí)導(dǎo)入例1:得到記錄次數(shù)最多的10條SQL語(yǔ)句,命令如下。shell>mysqldumpslow-sc-t10/var/lib/mysql/localhost-slow.log例2:得到按照查詢(xún)時(shí)間排序的前10條含有左連接的SQL語(yǔ)句,命令如下。
shell>mysqldumpslow-st-t10-g"leftjoin"/var/lib/mysql/localhost-slow.log4、刪除慢查詢(xún)?nèi)罩韭樵?xún)?nèi)罩镜膭h除方法與一般查詢(xún)?nèi)罩镜膭h除方法是一樣的??梢允褂梦募芾矸绞絼h除慢查詢(xún)?nèi)罩?,并可以使用flushlogs命令重新生成慢查詢(xún)?nèi)罩疚募m?xiàng)目知識(shí)導(dǎo)入四、二進(jìn)制日志二進(jìn)制日志用于記錄所有的DDL語(yǔ)句和DML語(yǔ)句,但是不包括數(shù)據(jù)查詢(xún)語(yǔ)句。語(yǔ)句以“事件”的形式保存,它描述了數(shù)據(jù)的更改過(guò)程。所以,二進(jìn)制日志對(duì)于“災(zāi)難”出現(xiàn)時(shí)的數(shù)據(jù)恢復(fù)具有極其重要的作用。1、啟動(dòng)和設(shè)置二進(jìn)制日志項(xiàng)目知識(shí)導(dǎo)入2、查看二進(jìn)制日志(1)查看當(dāng)前二進(jìn)制日志文件的位置和狀態(tài)項(xiàng)目知識(shí)導(dǎo)入2、查看二進(jìn)制日志(2)查看日志文件列表
binlog.index是二進(jìn)制日志索引文件,記錄了最大的日志序號(hào)。項(xiàng)目知識(shí)導(dǎo)入(3)使用mysqlbinlog命令查看日志文件內(nèi)容mysqlbinlog命令的語(yǔ)法格式如下:mysqlbinlog[options]log-files1log-files2...項(xiàng)目知識(shí)導(dǎo)入 4、刪除二進(jìn)制日志對(duì)于繁忙的事務(wù)處理系統(tǒng),每天會(huì)生成大量日志內(nèi)容,日志如果長(zhǎng)時(shí)間不清除,將會(huì)對(duì)磁盤(pán)空間造成很大的浪費(fèi),因此定期刪除日志是數(shù)據(jù)庫(kù)管理員維護(hù)MySQL的一個(gè)重要工作內(nèi)容。(1)resetmaster命令(2)purgemasterlogsto命令執(zhí)行resetmaster命令將刪除所有二進(jìn)制日志,新日志編號(hào)從000001開(kāi)始。purgemasterlogsto命令以日志編號(hào)為條件進(jìn)行二進(jìn)制日志刪除。(3)purgemasterlogsbefore命令purgemasterlogsbefore命令以時(shí)間為條件進(jìn)行二進(jìn)制日志刪除(4)expire_logs_days配置項(xiàng)expire_logs_days配置項(xiàng)設(shè)置在f文件中,用來(lái)設(shè)置日志的過(guò)期天數(shù)。超過(guò)指定的天數(shù)后日志將會(huì)被自動(dòng)刪除。項(xiàng)目任務(wù)分解任務(wù)4-1:通過(guò)錯(cuò)誤日志查看MySQL服務(wù)不能啟動(dòng)的原因任務(wù)說(shuō)明
啟動(dòng)MySQL服務(wù)失敗的時(shí)候,錯(cuò)誤信息會(huì)被記錄到MySQL錯(cuò)誤日志中。本任務(wù)要求通過(guò)錯(cuò)誤日志查看MySQL服務(wù)不能啟動(dòng)的原因。任務(wù)實(shí)施過(guò)程項(xiàng)目任務(wù)分解任務(wù)4-2:記錄客戶(hù)端連接錯(cuò)誤信息任務(wù)說(shuō)明
在數(shù)據(jù)庫(kù)管理過(guò)程中,有時(shí)需要記錄客戶(hù)端連接的信息,包括中斷連接和連接訪(fǎng)問(wèn)被拒絕的信息,從而為數(shù)據(jù)庫(kù)安全防范管理提供參考數(shù)據(jù)。本任務(wù)要求在錯(cuò)誤日志文件中以JSON格式記錄客戶(hù)端連接的錯(cuò)誤信息。任務(wù)實(shí)施過(guò)程項(xiàng)目任務(wù)分解任務(wù)4-3:使用mysqldumpslow分析慢查詢(xún)?nèi)罩救蝿?wù)說(shuō)明
本任務(wù)要求使用mysqldumpslow分析慢查詢(xún)?nèi)罩局杏涗涀疃嗟牟樵?xún)語(yǔ)句以及查詢(xún)用時(shí)最長(zhǎng)的查詢(xún)語(yǔ)句。任務(wù)實(shí)施過(guò)程項(xiàng)目任務(wù)分解任務(wù)4-4:使用mysqlbinlog基于時(shí)間點(diǎn)恢復(fù)數(shù)據(jù)任務(wù)說(shuō)明
MySQL提供了專(zhuān)用工具mysqlbinlog,使用這個(gè)工具可以查看二進(jìn)制日志文件中記錄的信息,并且以SQL格式輸出信息。如果因?yàn)檎`操作、修改或刪除了某行數(shù)據(jù),則可以利用二進(jìn)制日志進(jìn)行恢復(fù)。本任務(wù)要求使用mysqlbinlog基于時(shí)間點(diǎn)恢復(fù)數(shù)據(jù)。任務(wù)實(shí)施過(guò)程項(xiàng)目任務(wù)分解任務(wù)4-5:使用mysqlbinlog基于字節(jié)位置恢復(fù)數(shù)據(jù)任務(wù)說(shuō)明
除了基于時(shí)間點(diǎn),還可以基于二進(jìn)制日志中的字節(jié)位置實(shí)現(xiàn)數(shù)據(jù)的恢復(fù)。本任務(wù)要求使用mysqlbinlog基于字節(jié)位置恢復(fù)數(shù)據(jù)。任務(wù)實(shí)施過(guò)程常見(jiàn)問(wèn)題解決問(wèn)題1.出現(xiàn)“[ERROR]unknownvariable‘default-character-set=utf8mb4’”錯(cuò)誤提示。原因分析:若在f文件中添加default-character-set=utf8mb4選項(xiàng),則在執(zhí)行mysqlbinlog命令查看二進(jìn)制日志時(shí)就會(huì)報(bào)錯(cuò)。解決方案:在mysqlbinlog命令中添加--no-defaults選項(xiàng)。常見(jiàn)問(wèn)題解決問(wèn)題2.設(shè)定參數(shù)時(shí)出現(xiàn)“ERROR1238(HY000):Variable‘log_bin’isareadonlyvariable”錯(cuò)誤提示。
原因分析:這個(gè)錯(cuò)誤表示log_bin是一個(gè)只讀變量。解決方案:更改這個(gè)變量需要關(guān)閉MySQL服務(wù),然后在初始化選項(xiàng)文件中修改。數(shù)據(jù)庫(kù)運(yùn)維與管理項(xiàng)目5備份與恢復(fù)MySQL數(shù)據(jù)庫(kù)教學(xué)目標(biāo)知識(shí)目標(biāo)掌握MySQL備份的概念和分類(lèi)掌握mysqldump命令的使用方法掌握PerconaXtraBackup工具的使用方法掌握數(shù)據(jù)庫(kù)遷移的概念掌握MySQL數(shù)據(jù)表的導(dǎo)出和導(dǎo)入方法素養(yǎng)目標(biāo)提高安全防范意識(shí)加強(qiáng)規(guī)范操作意識(shí)能力目標(biāo)能使用mysqldump命令備份和恢復(fù)數(shù)據(jù)能使用PerconaXtraBackup實(shí)現(xiàn)熱備份能基于crontab實(shí)現(xiàn)自動(dòng)備份作業(yè)能基于各種命令實(shí)現(xiàn)數(shù)據(jù)表的導(dǎo)入和導(dǎo)出項(xiàng)目5
備份與恢復(fù)MySQL數(shù)據(jù)庫(kù)項(xiàng)目場(chǎng)景:天天電器商場(chǎng)的服務(wù)器已使用多年。由于服務(wù)器硬件故障率高,經(jīng)常會(huì)導(dǎo)致數(shù)據(jù)丟失,受到各部門(mén)抱怨。但公司近期沒(méi)有設(shè)備更新計(jì)劃,信息部門(mén)決定實(shí)施一個(gè)自動(dòng)的備份方案,當(dāng)服務(wù)器重裝的時(shí)候能重新加載備份數(shù)據(jù)。數(shù)據(jù)備份一、備份的分類(lèi)1、按照備份的方法分類(lèi)按照備份的方法(是否需要數(shù)據(jù)庫(kù)離線(xiàn)),可以將備份分為熱備份、冷備份和溫備份。(1)熱備份(HotBackup)。熱備份可以在數(shù)據(jù)庫(kù)運(yùn)行中直接進(jìn)行,對(duì)正在運(yùn)行的數(shù)據(jù)庫(kù)操作沒(méi)有任何的影響,數(shù)據(jù)庫(kù)的讀寫(xiě)操作可以正常執(zhí)行。(2)冷備份(ColdBackup)。冷備份必須在數(shù)據(jù)庫(kù)停止運(yùn)行的情況下進(jìn)行,數(shù)據(jù)庫(kù)的讀寫(xiě)操作不能執(zhí)行。這種備份方式非常簡(jiǎn)單,一般只需要復(fù)制相關(guān)的數(shù)據(jù)庫(kù)物理文件即可。(3)溫備份(WarmBackup)。溫備份是在數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中進(jìn)行的,但是會(huì)對(duì)當(dāng)前數(shù)據(jù)庫(kù)的操作有所影響,溫備份時(shí)僅支持讀操作,不支持寫(xiě)操作。數(shù)據(jù)備份2、按照備份的數(shù)據(jù)庫(kù)內(nèi)容分類(lèi)
按照備份的數(shù)據(jù)庫(kù)內(nèi)容來(lái)分類(lèi),備份又可以分為完全備份和部分備份。1.完全備份。完全備份是指對(duì)數(shù)據(jù)庫(kù)進(jìn)行完整的備份,即備份整個(gè)數(shù)據(jù)庫(kù),如果數(shù)據(jù)較多則會(huì)占用較多的時(shí)間和較大的空間。2.部分備份。部分備份是指?jìng)浞莶糠謹(jǐn)?shù)據(jù)庫(kù)內(nèi)容(例如,只備份一個(gè)表)。部分備份又分為增量備份和差異備份。增量備份需要使用專(zhuān)業(yè)的備份工具。增量備份是指在上次完全備份的基礎(chǔ)上,對(duì)更改的數(shù)據(jù)進(jìn)行備份。注意:在MySQL中,進(jìn)行不同方式的備份前,還要考慮存儲(chǔ)引擎是否支持,例如MyISAM存儲(chǔ)引擎不支持熱備份,只支持溫備份和冷備份;而InnoDB存儲(chǔ)引擎則支持熱備份、溫備份和冷備份。備份的數(shù)據(jù)和備份工具二、備份的數(shù)據(jù)一般情況下,需要備份的數(shù)據(jù)分為以下幾種。(1)表數(shù)據(jù)。(2)二進(jìn)制日志、InnoDB事務(wù)日志。(3)代碼(存儲(chǔ)過(guò)程、存儲(chǔ)函數(shù)、觸發(fā)器、事件調(diào)度器)。(4)服務(wù)器配置文件。備份的數(shù)據(jù)和備份工具三、備份的工具以下是幾種常用的備份工具。(1)mysqldump:邏輯備份工具,適用于所有的存儲(chǔ)引擎,支持溫備份、完全備份、部分備份,對(duì)于InnoDB存儲(chǔ)引擎支持熱備份。(2)cp、tar等歸檔復(fù)制工具:物理備份工具,適用于所有的存儲(chǔ)引擎,支持冷備份、完全備份、部分備份。(3)lvm2snapshot:借助文件系統(tǒng)管理工具進(jìn)行備份。(4)XtraBackup:一款由Percona公司提供的非常強(qiáng)大的InnoDB/XtraDB熱備份工具,支持完全備份、增量備份。使用mysqldump命令備份
MySQL主要提供了mysqldump命令用于實(shí)現(xiàn)備份。使用mysqldump命令備份一個(gè)數(shù)據(jù)庫(kù)的語(yǔ)法格式如下。mysqldump-uusername-pdbname[tbname...]>filename.sqlusername:賬戶(hù)名稱(chēng)。dbname:需要備份的數(shù)據(jù)庫(kù)名稱(chēng)。tbname:數(shù)據(jù)庫(kù)中需要備份的數(shù)據(jù)表名稱(chēng),可以指定多個(gè)數(shù)據(jù)表。省略該參數(shù)時(shí),會(huì)備份整個(gè)數(shù)據(jù)庫(kù)。>:用來(lái)告訴mysqldump命令,將備份數(shù)據(jù)表的定義和數(shù)據(jù)寫(xiě)入指定的備份文件。filename.sql:備份文件的名稱(chēng),文件名前面可以加絕對(duì)路徑。通常將數(shù)據(jù)庫(kù)備份成一個(gè)擴(kuò)展名為.sql的文件。使用mysqldump命令備份下面通過(guò)示例來(lái)介紹mysqldump命令的基本使用方法。1.備份單個(gè)數(shù)據(jù)庫(kù)信息,命令語(yǔ)法格式如下。mysqldump-u賬戶(hù)名-p密碼--databases數(shù)據(jù)庫(kù)>/保存路徑/文件名.sql例如,備份data數(shù)據(jù)庫(kù),賬戶(hù)名是root,密碼是root,備份到當(dāng)前文件夾的1.sql文件中,命令如下。mysqldump-uroot-proot--databasesdata>1.sql2.備份全部數(shù)據(jù)庫(kù)信息,命令語(yǔ)法格式如下。mysqldump-u賬戶(hù)名-p密碼--all-databases>/保存路徑/文件名.sql例如,備份全部數(shù)據(jù)庫(kù),賬戶(hù)名是root,密碼是root,備份到當(dāng)前文件夾的2.sql文件中,命令如下。mysqldump-uroot-proot--all-databases>2.sql3.備份某一個(gè)數(shù)據(jù)表,命令語(yǔ)法格式如下。mysqldump-u賬戶(hù)名-p密碼數(shù)據(jù)庫(kù)名表名>/保存路徑/文件名.sql例如,備份data數(shù)據(jù)庫(kù)中的users表,賬戶(hù)名是root,密碼是root,備份到當(dāng)前文件夾的3.sql文件中,命令如下。mysqldump-uroot-prootdatausers>3.sql使用PerconaXtraBackup工具快速備份備份操作示例(1)全庫(kù)備份——備份所有數(shù)據(jù)庫(kù),存放在以時(shí)間命名的目錄下。innobackupex會(huì)在指定存放數(shù)據(jù)的目錄下用當(dāng)前時(shí)間作為名稱(chēng)創(chuàng)建一個(gè)目錄,所有生成的備份文件都會(huì)存放在這個(gè)目錄下,命令如下。shell>innobackupex--defaults-file=/usr/local/mysql/f--user=root--password=xxx--socket=/var/lib/mysql/mysql.sock/data/backup/當(dāng)出現(xiàn)“completedOK!”則表示備份完成。(2)全庫(kù)備份——備份所有數(shù)據(jù)庫(kù),并指定目錄的名稱(chēng)。在使用innobackupex進(jìn)行備份時(shí),可以使用--no-timestamp參數(shù)來(lái)阻止它自動(dòng)創(chuàng)建一個(gè)以時(shí)間命名的目錄,如此一來(lái),innobackupex將會(huì)創(chuàng)建一個(gè)backup_dir目錄來(lái)存儲(chǔ)備份數(shù)據(jù),命令如下。shell>innobackupex--defaults-file=/usr/local/mysql/f--user=root--password=xxx--socket=/var/lib/mysql/mysql.sock--no-timestamp/data/backup/backup_dir使用PerconaXtraBackup工具快速備份備份操作示例(3)全庫(kù)備份——備份所有數(shù)據(jù)庫(kù),并打包。--stream=tar參數(shù)表示流式備份的格式,備份完成之后以指定格式存儲(chǔ)到標(biāo)準(zhǔn)輸出,目前只支持tar和xbstream格式,命令如下。shell>innobackupex--defaluts-file=/usr/local/mysql/f--user=root--password=xxx--socket=/var/lib/mysql/mysql.sock--stream=tar--no-timestamp/home/data/backup1>/home/data/backup/xtra_backup20210329.tar上述代碼中,“1>”代表標(biāo)準(zhǔn)輸出(stdout),“>”前面不加1,具有同樣效果;“2>”代表標(biāo)準(zhǔn)錯(cuò)誤(stderr)。(4)全庫(kù)備份——備份所有數(shù)據(jù)庫(kù),并壓縮打包。命令如下。shell>innobackupex--defaluts-file=/usr/local/mysql/f--user=root--password=xxx--socket=/var/lib/mysql/mysql.sock--stream=tar--no-timestamp/home/data/backup|gzip>/home/data/backup/150_backup.tar.gz解壓PerconaXtraBackup的備份文件,必須使用tar和-i參數(shù)。例如,可以先創(chuàng)建解壓的目錄150_backup,然后解壓到此目錄。解壓備份文件的命令如下。shell>tar-zixvf150_backup.tar.gz-C./150_backup使用PerconaXtraBackup工具快速備份備份操作示例(5)全庫(kù)備份——備份到遠(yuǎn)程并壓縮。命令如下。shell>innobackupex--defaluts-file=/usr/local/mysql/f--user=root--password=xxx--socket=/var/lib/mysql/mysql.sock--stream=tar/home/data/backup|sshroot@192.168.2.151"gzip>/home/data/150_backup/150_backup.tar.gz"(6)備份指定數(shù)據(jù)庫(kù)。例如,備份數(shù)據(jù)庫(kù)A和B,使用--databases參數(shù)指定數(shù)據(jù)庫(kù),命令如下。shell>innobackupex--defaults-file=/usr/local/mysql/f--user=root--password=xxx--socket=/var/lib/mysql/mysql.sock--databases="AB"--no-timestamp/data/backup/backup_database(7)備份不同數(shù)據(jù)庫(kù)下的不同表。還是使用--databases參數(shù),指定數(shù)據(jù)庫(kù)中的表,命令如下。shell>innobackupex--defaults-file=/usr/local/mysql/f--user=root--password=xxx--socket=/var/lib/mysql/mysql.sock--databases="A.hrms_aoB.checktype"--no_x0002_timestamp/data/backup/backup_tables使用PerconaXtraBackup工具快速備份備份操作示例(8)備份一個(gè)數(shù)據(jù)庫(kù)下的表。例如,備份A數(shù)據(jù)庫(kù)下以h開(kāi)頭的表,使用--include參數(shù),該參數(shù)使用正則表達(dá)式匹配表的名字,命令如下。shell>innobackupex--defaults-file=/usr/local/mysql/f--user=root--password=xxx--socket=/var/lib/mysql/mysql.sock--include="A.h"--no-
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大學(xué)生創(chuàng)業(yè)項(xiàng)目策劃書(shū)和模板
- 大學(xué)生創(chuàng)業(yè)項(xiàng)目logo
- 小學(xué)四年級(jí)數(shù)學(xué)三位數(shù)除以?xún)晌粩?shù)綜合作業(yè)口算題大全附答案
- 職業(yè)規(guī)劃與選擇
- 大學(xué)生活導(dǎo)航
- 春分氣象科普
- 餐飲業(yè)新動(dòng)態(tài)
- 初中生改名申請(qǐng)書(shū)范文
- DB36T-桑芽茶加工技術(shù)規(guī)程編制說(shuō)明
- 數(shù)字貿(mào)易產(chǎn)教融合共同體運(yùn)作模式與管理規(guī)范編制說(shuō)明
- 彈藥安全管理知識(shí)講座
- 消化內(nèi)科肝硬化“一病一品”
- 物流營(yíng)銷(xiāo)(第四版) 課件 胡延華 第1、2章 物流營(yíng)銷(xiāo)概述、物流營(yíng)銷(xiāo)市場(chǎng)調(diào)查與分析
- 孩子撫養(yǎng)費(fèi)起訴狀范本:免修版模板范本
- 食品安全防護(hù)計(jì)劃
- 廣西太陽(yáng)能資源分析
- 規(guī)范性文件備案審查意見(jiàn)反饋表
- 六年級(jí)上冊(cè)數(shù)學(xué)書(shū)蘇教版答案
- 體檢中心獎(jiǎng)懲細(xì)則
- 2023年全國(guó)中小學(xué)思政課教師網(wǎng)絡(luò)培訓(xùn)研修總結(jié)心得體會(huì)
- CDE網(wǎng)站申請(qǐng)人之窗欄目介紹及用戶(hù)操作手冊(cè)
評(píng)論
0/150
提交評(píng)論