版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 MySQL 數(shù)據(jù)庫技術(shù)概述 一、體系結(jié)構(gòu)1、MySQL安裝必需的體系結(jié)構(gòu)組件:MySQL服務(wù)器,客戶機(jī)程序以及MySQL非客戶機(jī)程序;中央程序充當(dāng)服務(wù)器,客戶機(jī)程序連接到該服務(wù)器以發(fā)出數(shù)據(jù)請(qǐng)求。2、MySQL客戶機(jī)/服務(wù)器通信并不僅限于所有計(jì)算機(jī)都運(yùn)行同一操作系統(tǒng)的環(huán)境??蛻魴C(jī)程序可以連接到在相同主機(jī)或不同主機(jī)上運(yùn)行的服務(wù)器客戶機(jī)/服務(wù)器通信可以發(fā)生在計(jì)算機(jī)運(yùn)行不同操作系統(tǒng)的環(huán)境中客戶機(jī)程序:1、mysql/mysqldump客戶機(jī)程序是使用最多的一個(gè)客戶段工具了;2、MySQL Workbench是一款GUI工具,可以用來:為數(shù)據(jù)庫建模執(zhí)行數(shù)據(jù)庫查詢執(zhí)行管理任務(wù)MySQL服務(wù)器:1、服務(wù)器
2、和主機(jī)之間的概念差別:服務(wù)器:一個(gè)軟件程序(mysqld),具有版本號(hào)和一系列功能;主機(jī):服務(wù)器程序在其上運(yùn)行的物理計(jì)算機(jī),其中包含:硬件配置、操作系統(tǒng)、網(wǎng)絡(luò)地址2、多個(gè)mysqld實(shí)例可同時(shí)在一臺(tái)主機(jī)上運(yùn)行;服務(wù)器進(jìn)程:1、應(yīng)用程序主要是mysqld進(jìn)程來訪問數(shù)據(jù)庫服務(wù)器,由mysqld來操作不同的存儲(chǔ)引擎(磁盤:InnoDB,MyISAM;內(nèi)存:Memory;網(wǎng)絡(luò):NDB);2、mysqld(服務(wù)器程序)進(jìn)程可以劃分為以下三個(gè)層:- 連接層:處理連接,此層存在于所有服務(wù)器軟件(Web/郵件/LDAP服務(wù)器)上;- SQL層:處理所連接的應(yīng)用程序發(fā)送的SQL查詢;- 存儲(chǔ)層:處理數(shù)據(jù)存儲(chǔ),數(shù)
3、據(jù)可以按不同格式和結(jié)構(gòu)存儲(chǔ)在不同物理介質(zhì)上連接層:1、連接層可通過多種通信協(xié)議接受來自應(yīng)用程序的連接:- TCP/IP;- UNIX套接字;- 共享內(nèi)存;- 命名管道;2、其中TCP/IP適用于整個(gè)網(wǎng)絡(luò),也是最常用的連接方式;客戶機(jī)和服務(wù)器在同一臺(tái)計(jì)算機(jī)上運(yùn)行時(shí),上面列出的其他協(xié)議僅支持本地連接;3、此層針對(duì)每個(gè)連接維護(hù)一個(gè)線程,此線程處理查詢執(zhí)行;在某個(gè)連接可以開始發(fā)送SQL查詢之前,將會(huì)通過驗(yàn)證用戶名+口令+客戶機(jī)主機(jī)來對(duì)該連接進(jìn)行驗(yàn)證;通信協(xié)議:1、TCP/IP(傳輸控制協(xié)議/Internet協(xié)議,Transmission Control Protocol/Internet Protoc
4、ol):該通信協(xié)議套件用于連接Internet上的主機(jī);在Linux操作系統(tǒng)中,TCP/IP是內(nèi)置的,供 Internet使用,從而使其成為通過網(wǎng)絡(luò)傳輸數(shù)據(jù)的標(biāo)準(zhǔn);這也是適用于Windows的最佳連接類型;2、UNIX套接字:一種進(jìn)程間通信形式,用于在同一臺(tái)計(jì)算機(jī)上的進(jìn)程之間形成雙向 通信鏈路的一端;套接字需要本地系統(tǒng)上的物理文件,這是適用于Linux的最佳連接類型;3、共享內(nèi)存:一種在程序之間傳遞數(shù)據(jù)的有效方式;一個(gè)程序創(chuàng)建其他進(jìn)程(如果允許)可以訪問的內(nèi)存部分;此Windows顯式“被動(dòng)”模式僅適用于單臺(tái)(Windows)計(jì)算機(jī);默認(rèn)情況下,共享內(nèi)存處于禁用狀態(tài),要啟用共享內(nèi)存連接,必須使
5、用shared-memory選項(xiàng)啟動(dòng)服務(wù)器;4、命名管道:命名管道的使用偏向于客戶機(jī)/服務(wù)器通信,其工作方式與套接字非常相似;命名管道支持讀/寫操作,以及服務(wù)器應(yīng)用程序的顯式“被動(dòng)”模式;此協(xié)議僅適用于單臺(tái)(Windows)計(jì)算機(jī);默認(rèn)情況下,命名管道處于禁用狀態(tài),要啟用命名管道連接,必須使用enable-named-pipe選項(xiàng)啟動(dòng)服務(wù)器;SQL層:1、解析器:解析器驗(yàn)證語法是否正確;2、授權(quán):驗(yàn)證是否允許所連接的用戶運(yùn)行特定查詢;3、優(yōu)化器:創(chuàng)建每個(gè)查詢的執(zhí)行計(jì)劃,這是有關(guān)如何以最優(yōu)化的方式執(zhí)行查詢的分步指令集,確定要使用哪些索引以及采用何種順序處理表是此步驟的最重要部分;4、查詢執(zhí)行:完
6、成每個(gè)查詢的執(zhí)行計(jì)劃;5、查詢高速緩存:(可選)可配置的查詢高速緩存,可用于存儲(chǔ)(并立即返回)執(zhí)行的查詢和結(jié)果;6、查詢?nèi)罩居涗?可以啟用以跟蹤執(zhí)行的查詢;SQL語句處理:第一次的選擇主要是查看是否有配置開啟高速緩存查詢的特性;存儲(chǔ)層:1、通過MySQL,可以使用稱為“存儲(chǔ)引擎”的不同類型的存儲(chǔ),數(shù)據(jù)可以存儲(chǔ)在磁盤,內(nèi)存和網(wǎng)絡(luò)中;2、數(shù)據(jù)庫中的每個(gè)表可以使用任何可用的存儲(chǔ)引擎,“磁盤”存儲(chǔ)便宜且持久,而“內(nèi)存”存儲(chǔ)則要快得多;3、InnoDB是默認(rèn)存儲(chǔ)引擎,它可提供事務(wù),全文索引和外鍵約束,因此適用于各種混合查詢;它具有多種用途,支持讀密集型工作負(fù)荷,讀/寫工作負(fù)荷和事務(wù)工作負(fù)荷;4、其他存儲(chǔ)
7、引擎包括:- MyISAM:適用于頻繁讀取但很少更新的數(shù)據(jù);- MEMORY:在內(nèi)存中存儲(chǔ)所有數(shù)據(jù);- NDB:供MySQL Cluster用來為高可用性數(shù)據(jù)提供冗余的可伸縮拓?fù)渥?存儲(chǔ)引擎可擴(kuò)展,超越存儲(chǔ)層,而不只包含存儲(chǔ),它們還包括其他結(jié)構(gòu)和實(shí)現(xiàn)機(jī)制;存儲(chǔ)引擎概覽:1、客戶機(jī)通過以SQL語句形式向服務(wù)器發(fā)送請(qǐng)求從表中檢索數(shù)據(jù)或更改表中的數(shù)據(jù);2、服務(wù)器通過使用雙層處理模型執(zhí)行每條語句;3、客戶機(jī)通常不需要關(guān)心哪些引擎參與SQL語句處理,這種獨(dú)立于引擎的SQL語句的一些例外情況包括:- CREATE TABLE具有ENGINE選項(xiàng),可基于每個(gè)表指定要使用的引擎;- ALTER TABLE具有
8、ENGINE選項(xiàng),允許將表轉(zhuǎn)換為使用不同的存儲(chǔ)引擎;- 某些索引類型僅適用于特定存儲(chǔ)引擎;例如,僅InnoDB和MyISAM引擎支持全文索引;- COMMIT和ROLLBACK操作僅影響事務(wù)存儲(chǔ)引擎(例如InnoDB和NDB)管理的表;依賴于存儲(chǔ)引擎的功能:1、存儲(chǔ)介質(zhì):表存儲(chǔ)引擎可以在磁盤上,在內(nèi)存中或通過網(wǎng)絡(luò)存儲(chǔ)數(shù)據(jù);2、事務(wù)功能:某些存儲(chǔ)引擎支持全面的ACID事務(wù)功能,而其他存儲(chǔ)引擎可能不具有事務(wù)支持;3、鎖定:存儲(chǔ)引擎可能使用不同的鎖定粒度(例如表級(jí)別鎖定或行級(jí)別鎖定)和機(jī)制來提供與并發(fā)事務(wù)的一致性;4、備份和恢復(fù):可能會(huì)受到存儲(chǔ)引擎存儲(chǔ)和操作數(shù)據(jù)的方式的影響;5、優(yōu)化:不同的索引實(shí)現(xiàn)
9、可能會(huì)影響優(yōu)化,存儲(chǔ)引擎以不同的方式使用內(nèi)部高速緩存,緩沖區(qū)和內(nèi)存以優(yōu)化性能;6、特殊功能:某些引擎類型具有提供全文搜索和引用完整性的功能以及處理空間數(shù)據(jù)的能力;TIPS:優(yōu)化器可能需要根據(jù)存儲(chǔ)引擎進(jìn)行不同的選擇,但這均是通過每種存儲(chǔ)引擎支持的標(biāo)準(zhǔn)化接口(API)進(jìn)行處理的;MySQL如何使用磁盤空間:1、默認(rèn)情況下,程序文件隨數(shù)據(jù)目錄一起存儲(chǔ)在服務(wù)器安裝目錄下;執(zhí)行各種客戶機(jī)程序,管理程序和實(shí)用程序時(shí)將創(chuàng)建程序可執(zhí)行文件和日志文件;2、首要使用磁盤空間的是數(shù)據(jù)目錄:服務(wù)器日志文件和狀態(tài)文件包含有關(guān)服務(wù)器處理的語句的信息,日志可用于進(jìn)行故障排除/監(jiān)視/復(fù)制和恢復(fù);InnoDB日志文件(適用于所
10、有數(shù)據(jù)庫)駐留在數(shù)據(jù)目錄級(jí)別;InnoDB系統(tǒng)表空間包含數(shù)據(jù)字典,撤消日志和緩沖區(qū);每個(gè)數(shù)據(jù)庫在數(shù)據(jù)目錄下均具有單一目錄(無論在數(shù)據(jù)庫中創(chuàng)建何種類型的表),數(shù)據(jù)庫目錄存儲(chǔ)以下內(nèi)容:- 數(shù)據(jù)文件:特定于存儲(chǔ)引擎的數(shù)據(jù)文件,這些文件也可能包含元數(shù)據(jù)或索引信息,具體取決于所使用的存儲(chǔ)引擎;- 格式文件(.frm):包含每個(gè)表和/或視圖結(jié)構(gòu)的說明,位于相應(yīng)的數(shù)據(jù)庫目錄中;- 觸發(fā)器:與某個(gè)表關(guān)聯(lián)并在該表發(fā)生特定事件時(shí)激活的命名數(shù)據(jù)庫對(duì)象;數(shù)據(jù)目錄的位置取決于配置,操作系統(tǒng),安裝包和分發(fā);典型位置是/var/lib/mysql;MySQL在磁盤上存儲(chǔ)系統(tǒng)數(shù)據(jù)庫(mysql),mysql包含諸如用戶/特權(quán)
11、/插件/幫助列表/事件/時(shí)區(qū)實(shí)現(xiàn)和存儲(chǔ)例程之類的信息;MySQL如何使用內(nèi)存:1、內(nèi)存分配可以劃分為以下兩種類別:- 全局(每實(shí)例內(nèi)存):服務(wù)器啟動(dòng)時(shí)分配一次并在服務(wù)器關(guān)閉時(shí)釋放,此內(nèi)存在所有會(huì)話間共享;當(dāng)所有物理內(nèi)存用盡時(shí),操作系統(tǒng)開始交換,這會(huì)對(duì)MySQL服務(wù)器性能具有不利影響,可能會(huì)導(dǎo)致服務(wù)器崩潰;- 會(huì)話(每會(huì)話內(nèi)存):基于每個(gè)會(huì)話(有時(shí)稱為“線程”)動(dòng)態(tài)進(jìn)行分配;此內(nèi)存可在會(huì)話結(jié)束時(shí)或不再需要會(huì)話時(shí)釋放,此內(nèi)存多用于處理查詢結(jié)果,所使用的緩沖區(qū)大小基于每個(gè)連接;例如,read_buffer為10MB且具有100個(gè)連接意味著可能總共有100*10MB同時(shí)用于所有讀取緩沖區(qū);內(nèi)存結(jié)構(gòu):服
12、務(wù)器在運(yùn)行時(shí)會(huì)為許多種類的數(shù)據(jù)分配內(nèi)存:1、查詢高速緩存還用于加速處理重復(fù)發(fā)出的查詢;2、線程高速緩存:在MySQL(和其他程序)中使用線程將應(yīng)用程序執(zhí)行劃分為兩個(gè)或更多個(gè)同時(shí)運(yùn)行的任務(wù),將會(huì)為連接到MySQL服務(wù)器的每個(gè)客戶機(jī)創(chuàng)建單獨(dú)的線程以處理該連接;3、緩沖區(qū)和高速緩存:緩沖區(qū)和高速緩存提供數(shù)據(jù)管理子系統(tǒng)并支持快速訪問項(xiàng)目,例如授權(quán)表緩沖區(qū),存儲(chǔ)引擎緩沖區(qū)(如InnoDB的日志緩沖區(qū))和保存開放表說明符的表開放緩沖區(qū);如果使用MEMORY存儲(chǔ)引擎,MySQL將使用主內(nèi)存作為主體數(shù)據(jù)存儲(chǔ),其他存儲(chǔ)引擎也可能使用主內(nèi)存進(jìn)行數(shù)據(jù)存儲(chǔ),但MEMORY是唯一的,未設(shè)計(jì)為在磁盤上存儲(chǔ)數(shù)據(jù);4、連接/
13、會(huì)話:1).內(nèi)部臨時(shí)表:在某些查詢執(zhí)行情況下,MySQL會(huì)創(chuàng)建一個(gè)臨時(shí)表來解析查詢;可以在內(nèi)存中或在磁盤上創(chuàng)建臨時(shí)表,具體取決于其大小或內(nèi)容或者查詢語法;2).特定于客戶機(jī)的緩沖區(qū):專門設(shè)計(jì)為支持所連接的各個(gè)客戶機(jī);緩沖區(qū)示例包括:用于交換信息的通信緩沖區(qū);排序操作:表讀取緩沖區(qū)(包括支持聯(lián)接的緩沖區(qū));MySQL插件接口:1、當(dāng)前,插件API支持:- 可用于替換或擴(kuò)充內(nèi)置全文解析器的全文解析器插件;例如,某個(gè)插件可以使用不同于內(nèi)置解析器所使用的規(guī)則將文本解析為字,要解析具有不同于內(nèi)置解析器所預(yù)期的特征的文本,這很有用;- 向服務(wù)器提供低級(jí)別存儲(chǔ),檢索和數(shù)據(jù)索引的存儲(chǔ)引擎;- 信息模式插件;信
14、息模式插件作為MySQL INFORMATION_SCHEMA數(shù)據(jù)庫中的表出現(xiàn),稍后將更詳細(xì)地討論INFORMATION_SCHEMA數(shù)據(jù)庫;- 守護(hù)進(jìn)程插件啟動(dòng)在服務(wù)器內(nèi)運(yùn)行的后臺(tái)進(jìn)程(例如,定期執(zhí)行心跳處理);2、插件接口需要mysql數(shù)據(jù)庫中的PLUGINS表,此表是在MySQL安裝過程中創(chuàng)建的二、系統(tǒng)管理MySQL服務(wù)器分發(fā)1.MySQL可用于多個(gè)操作系統(tǒng),包括Linux/Windows/Mac OS X和Oracle Solaris等;本課程僅講述Linux;2.MySQL可以作為二進(jìn)制文件分發(fā)和源代碼分發(fā)的形式提供:- 二進(jìn)制文件分發(fā):是預(yù)編譯的,可以運(yùn)行的程序,可用于Enterp
15、rise和Community MySQL Server版本,這些二進(jìn)制文件是正式的經(jīng)過Oracle測試的版本;- 源代碼分發(fā):不保證與商業(yè)代碼更新一致,它們也不包括Oracle支持;TIPS:有關(guān)可用OS類型的完整列表/downloads/mysql/;MySQL二進(jìn)制文件分發(fā)1.用于Linux的二進(jìn)制文件:- RPM文件可用于基于RPM的Linux分發(fā),例如Oracle Linux;通過使用rpm程序或者通過使用yum等軟件包管理器來安裝這些文件,每個(gè)RPM的安裝布局由RPM文件自身內(nèi)包含的規(guī)范文件提供;(使用rpm -qpl來查看安裝時(shí)RPM文件內(nèi)容的位置)- TAR文件可用于多種Linu
16、x和UNIX類似系統(tǒng),要安裝這種類型的分發(fā),使用.tar程序在安裝目錄中解壓縮該分發(fā);2.用于Windows的二進(jìn)制文件:- 完整分發(fā):包含MySQL安裝的所有文件以及配置向?qū)А? 非安裝分發(fā):.zip歸檔文件,不使用安裝或配置向?qū)?您只需解壓縮該歸檔文件并將其移至所需的安裝位置;TIPS:二進(jìn)制文件分發(fā)還可以壓縮文件形式用于多個(gè)其他操作系統(tǒng)(包括Oracle Solaris);MySQL源代碼分發(fā)1.如果需要預(yù)編譯分發(fā)中可能沒有的功能(例如完整的調(diào)試支持),可以根據(jù)源代碼編譯MySQL;2.要使服務(wù)器在運(yùn)行時(shí)使用較少內(nèi)存,可能需要禁用不需要的功能;例如,可能需要禁用可選存儲(chǔ)引擎,或者僅編譯實(shí)
17、際需要的那些字符集;3.二進(jìn)制文件分發(fā)僅可用于已發(fā)行的版本,不可用于最新的開發(fā)源代碼;4.源代碼分發(fā)可以安裝在任何所需位置;默認(rèn)Linux安裝位置為/usr/local/mysql;用于Linux的MySQL RPM安裝文件1.Oracle提供兩種類型的MySQL RPM:- 與分發(fā)無關(guān):MySQL提供給社區(qū)的RPM,它們應(yīng)該可以在支持RPM軟件包并使用glibc 2.3(GNU C庫是標(biāo)準(zhǔn)C庫的GNU實(shí)現(xiàn))的所有Linux版本上運(yùn)行;(查看方式:ldd version)- 特定于分發(fā):面向目標(biāo)Linux平臺(tái),Oracle為許多平臺(tái)提供了RPM文件;2.MySQL的RPM安裝通常分為不同的軟件
18、包,對(duì)于標(biāo)準(zhǔn)安裝,必須至少安裝服務(wù)器程序 和客戶機(jī)程序,標(biāo)準(zhǔn)安裝不需要其他軟件包;- MySQL-client-advanced-.rpm:客戶端命令行工具;- MySQL-devel-advanced-.rpm:包含了編譯軟件所需要的頭文件,需要使用客戶端共享庫;- MySQL-embedded-advanced-.rpm:嵌入式數(shù)據(jù)庫,為移動(dòng)智能設(shè)備使用;- MySQL-server-advanced-.rpm:服務(wù)端(包含mysqld的二進(jìn)制文件);- MySQL-shared-advanced-.rpm:包含客戶端的共享庫(libmysqlclient.so*);- MySQL-sha
19、red-compat-advanced-.rpm:包含了兼容舊版本的客戶端共享庫;- MySQL-test-advanced-.rpm:包含了測試套件;Linux MySQL RPM安裝過程1.解壓縮包:unizp MySQL-5.6.25-oel6-x86_64.zip;2.創(chuàng)建用戶:useradd mysql;3.安裝RPM包:rpm -ivh MySQL-*-advanced-5.6.25-1.el6.x86_64.rpm;安裝在運(yùn)行時(shí)自動(dòng)執(zhí)行以下任務(wù):- 將RPM文件提取到其默認(rèn)位置;- 在/etc/init.d目錄中注冊(cè)名為mysql的啟動(dòng)腳本;- 執(zhí)行mysql_install_d
20、b,即創(chuàng)建系統(tǒng)數(shù)據(jù)庫和默認(rèn)f文件的腳本,為root帳戶設(shè)置隨機(jī)口令并將該口令保存在安裝用戶主目錄中名為.mysql_secret的文件中;- 為mysql設(shè)置登錄帳戶以及用戶名和組名稱(用于管理和運(yùn)行服務(wù)器);4.發(fā)生與自帶版本沖突的話:- 刪除原來的包:yum remove mysql-libs-5.1.73-3.el6_5.x86_64;缺點(diǎn)是會(huì)刪除相關(guān)的依賴文件,可能其它程序會(huì)用;- 添加replacefiles選項(xiàng):rpm -ivh replacefiles MySQL-advanced;5.產(chǎn)生的目錄:/usr/bin:客戶端程序和腳本;/usr/sbin:mysqld服務(wù)程序;/v
21、ar/lib/mysql:數(shù)據(jù)庫和日志文件,之后講到數(shù)據(jù)庫結(jié)構(gòu)會(huì)講每個(gè)文件的作用;/usr/share/info:info格式的MySQL手冊(cè);/usr/share/man:標(biāo)準(zhǔn)的Unix man格式手冊(cè);/usr/include/mysql:MySQL所需的頭文件;/usr/lib64/mysql:庫文件;/usr/share/mysql:其它雜項(xiàng),包括支持文件,錯(cuò)誤信息,字符集文件,示例配置文件和數(shù)據(jù)庫安裝的SQL文件等;/usr/share/sql-bench:測試基線;/etc/f, /usr/f:缺省配置文件;/etc/init.d/:包含了mysql啟動(dòng)腳本;/var/log:my
22、sqld.log文件;6.啟動(dòng)數(shù)據(jù)庫:service mysql start;- 查看后臺(tái)進(jìn)程:ps -ef | grep mysql;- 本來是啟動(dòng)的mysqld服務(wù),后臺(tái)多了一個(gè)mysqld_safe服務(wù),之后講數(shù)據(jù)庫啟動(dòng)的幾種方式會(huì)提到;7.客戶端登陸:mysql;之前版本都可以使用空密碼登錄,現(xiàn)在卻報(bào)錯(cuò);查看安裝過程,會(huì)提示密碼隨機(jī)了,之后需要修改密碼;A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !You will find that password in /root/.mysql_secret.You must ch
23、ange that password on your first connect,no other statement but SET PASSWORD will be accepted.See the manual for the semantics of the password expired flag.Also, the account for the anonymous user has been removed.查看到密碼后再登錄:mysql -uroot -p;如何使用SET PASSWORD: help SET PASSWORD,發(fā)現(xiàn)報(bào)錯(cuò),必須先修改:SET PASSWORD
24、= PASSWORD(“mysql”);8.卸載數(shù)據(jù)庫:查看安裝了哪些軟件:yum list | grep MySQL;刪除軟件:yum remove MySQL-*;在Linux上啟動(dòng)MySQL服務(wù)器;1.可以使用多種方法在Linux上啟動(dòng)服務(wù)器:- mysqld:手動(dòng)調(diào)用服務(wù)器來調(diào)試MySQL服務(wù)器;默認(rèn)情況下,錯(cuò)誤消息傳至終端,而不是錯(cuò)誤日志;- mysqld_safe:設(shè)置錯(cuò)誤日志,然后啟動(dòng)mysqld并對(duì)其進(jìn)行監(jiān)視,如果mysqld異常終止(kill -9 pid),mysqld_safe會(huì)將其重新啟動(dòng);如果服務(wù)器未正常啟動(dòng),請(qǐng)查看錯(cuò)誤日志;- mysql.server:用作mysq
25、ld_safe的包裝,針對(duì)使用System V運(yùn)行級(jí)別目錄的Linux和Oracle Solaris等系統(tǒng);- mysqld_multi:該P(yáng)erl腳本用于簡化單臺(tái)主機(jī)上的多個(gè)服務(wù)器管理,它可以啟動(dòng)或停止服務(wù)器,它還可以報(bào)告服務(wù)器是否正在運(yùn)行;- 其它:mysqladmin -uroot -p start;2.安裝正確的腳本以使服務(wù)器在啟動(dòng)時(shí)自動(dòng)運(yùn)行:- 在BSD樣式的Linux系統(tǒng)上,最常見的是通過某一個(gè)系統(tǒng)啟動(dòng)腳本(例如/etc目錄中的rc.local腳本)調(diào)用mysqld_safe;- 在/etc/init.d下具有運(yùn)行級(jí)別目錄的Linux和UNIX System V變體使用mysql.
26、server腳本,預(yù)先構(gòu)建的 Linux二進(jìn)制軟件包針對(duì)相應(yīng)的運(yùn)行級(jí)別在名稱mysql安裝mysql.server;使用chkconfig注冊(cè)服務(wù);在Linux上停止MySQL服務(wù)器1.要手動(dòng)停止服務(wù)器,請(qǐng)使用以下方法之一:- mysqladmin:具有關(guān)閉命令,它作為客戶機(jī)連接到服務(wù)器并且可以關(guān)閉本地或遠(yuǎn)程服務(wù)器;mysqladmin -uroot -p shutdown;- mysql.server:在使用stop參數(shù)調(diào)用時(shí)停止和/或關(guān)閉本地服務(wù)器;- mysqld_multi:停止和/或關(guān)閉其管理的任何服務(wù)器,它通過調(diào)用mysqladmin來執(zhí)行此操作;2.mysqld_safe沒有服務(wù)
27、器關(guān)閉功能;提高安裝安全性1.從RPM軟件包安裝MySQL時(shí),將為root帳戶設(shè)置隨機(jī)口令并將該口令保存到安裝用戶主目錄中的.mysql_secret文件;對(duì)于所有其他安裝,初始口令為空白;2.在不帶參數(shù)的情況下調(diào)用mysql_secure_installation,這將提示您確定要執(zhí)行的操作;例子:可以運(yùn)行一下# /usr/bin/mysql_secure_installation,雖然此處顯示mysql_secure_installation 腳本以Linux root用戶身份運(yùn)行,但您可以普通用戶身份運(yùn)行該腳本;Windows MySQL服務(wù)器安裝目錄1.默認(rèn)情況下,MySQL5.6安裝
28、在目錄路徑C:Program FilesMySQLMySQL 5.6 Server中;2.bin包含MySQL服務(wù)器和客戶機(jī)程序:1.mysqld.exe:標(biāo)準(zhǔn)服務(wù)器;2.其他客戶機(jī)程序,例如mysqladmin.exe;3.data是服務(wù)器存儲(chǔ)數(shù)據(jù)庫和日志文件的位置,此目錄是預(yù)配置的,可以直接使用;例如,此目錄包括mysql子目錄(包含授權(quán)表)和用于test數(shù)據(jù)庫的test子目錄(可用于測試目的);4.my.ini:配置選項(xiàng)文件指定安裝目錄的位置以及其他可選設(shè)置;在Windows上運(yùn)行MySQL1.通過使用net start MySQL和net stop MySQL命令從命令行手動(dòng)啟動(dòng)和停止
29、服務(wù);2.使用mysqld install命令從命令行調(diào)用服務(wù)器;在停止服務(wù)后將其刪除,使用mysqld remove;數(shù)據(jù)目錄1.每個(gè)表都具有*.frm文件(包括視圖);2.MySQL服務(wù)器開始執(zhí)行時(shí)會(huì)將其當(dāng)前工作目錄轉(zhuǎn)到其data目錄,必須確保MySQL服務(wù)器具有正確的訪問權(quán)限,以便在data目錄中創(chuàng)建文件,該服務(wù)器必須可以訪問它要在其中創(chuàng)建數(shù)據(jù)文件或日志文件的所有目錄;3.MySQL服務(wù)器將每個(gè)數(shù)據(jù)庫映射到MySQL data目錄下的一個(gè)目錄,并且默認(rèn)情況下,它將數(shù)據(jù)庫中的表映射到數(shù)據(jù)庫目錄中的文件名;這具有以下含義:- 數(shù)據(jù)庫和表名稱僅在具有區(qū)分大小寫的文件名的操作系統(tǒng)(例如大多數(shù)Li
30、nux系統(tǒng))上的MySQL服務(wù)器中才區(qū)分大小寫;- 可以通過將數(shù)據(jù)目錄,數(shù)據(jù)庫和/或單個(gè)表(具體取決于存儲(chǔ)引擎選項(xiàng))移至不同的物理位置來分割磁盤使用,這可以提高性能;MySQL服務(wù)器發(fā)行版1.升級(jí)之前還應(yīng)該查看readme文檔:- 在關(guān)于升級(jí)的部分中,一定要閱讀與正在執(zhí)行的升級(jí)類型有關(guān)的注釋,按照建議的過程執(zhí)行操作;- 在關(guān)于新版本的更改注釋部分中,查看在當(dāng)前版本與要安裝的版本之間發(fā)生的所有更改,請(qǐng)注意不與當(dāng)前版本向后兼容的所有更改;2.RPM和源代碼升級(jí)通常不需要進(jìn)行重新配置,因?yàn)樗鼈兺褂孟嗤惭b目錄位置,而不考慮MySQL版本;3.需要進(jìn)行一些重新配置的情況:- 如果使用通用Linux
31、二進(jìn)制文件進(jìn)行升級(jí),可以選擇創(chuàng)建特定于新版本的目錄來包含升級(jí)的發(fā)行版;- 此外,Windows安裝程序在Program Files下創(chuàng)建特定于版本的文件夾;4.設(shè)置指向舊安裝目錄的軟鏈接,從而可以輕松刪除并重新創(chuàng)建該鏈接來指向新安裝目錄,對(duì)該符號(hào)鏈接的后續(xù)引用將訪問新安裝;比如:把data目錄做成一個(gè)軟鏈接;5.如果您的安裝最初是通過安裝多個(gè)RPM軟件包而生成的,則最好升級(jí)所有軟件包,而不僅是其中的一些;例如,如果先前安裝了服務(wù)器和客戶機(jī)RPM,則不要僅升級(jí)服務(wù)器RPM;補(bǔ)充:1.升級(jí)MySQL總體上可以簡單使用以下步驟進(jìn)行操作:- 備份你的數(shù)據(jù)庫;- 關(guān)閉Server;- 在已存版本上安裝新
32、版本MySQL;- 啟動(dòng)Server;2.MySQL當(dāng)前提供的升級(jí)不提供跳級(jí)升級(jí),因此,如果你當(dāng)前的MySQL版本為5.1,那么升級(jí)到5.7的流程為:5.1-5.5-5.6-5.7;檢查升級(jí)的表1.在每次進(jìn)行MySQL升級(jí)時(shí),都需要運(yùn)行mysql_upgrade程序,主要是執(zhí)行了以下操作:- 檢查數(shù)據(jù)庫中的所有表與MySQL服務(wù)器當(dāng)前版本是否兼容性;- 修復(fù)表中發(fā)現(xiàn)的所有問題以及可能的不兼容性;- 升級(jí)系統(tǒng)表來添加新版本中可用的所有新特權(quán)或功能;- 使用當(dāng)前MySQL版本號(hào)標(biāo)記所有已檢查和已修復(fù)的表;2.mysql_upgrade會(huì)將MySQL版本號(hào)保存在數(shù)據(jù)目錄下的一個(gè)mysql_upgra
33、de_info的文件中,這個(gè)文件被用于快速查看是否所有表針對(duì)升級(jí)版本已經(jīng)做了檢查,是否可以跳過表檢查;當(dāng)然,運(yùn)行mysql_upgrade時(shí),你也可以使用force項(xiàng)來跳過查看此文件;3.在MySQL 5.7.5之前,為了檢查和修正表并進(jìn)行系統(tǒng)表升級(jí),mysql_upgrade會(huì)調(diào)用以下2條命令:mysqlcheck check-upgrade all-databases auto-repairmysql_fix_privilege_tables從MySQL 5.7.5以后,mysql_upgrade將直接和MySQL Server交互,發(fā)送所需的SQL語句來執(zhí)行升級(jí);補(bǔ)充:升級(jí)過程;1.停止
34、服務(wù):service mysql stop;2.備份文件:- 創(chuàng)建臨時(shí)目錄:mkdir /tmp/mbackup;- 備份配置文件:cp /etc/f /tmp/mbackup/;- 備份數(shù)據(jù)文件:cp -rf /var/lib/mysql/ /tmp/mbackup/mysql;也可以用mysqldump/xtrabackup;3.刪除軟件:yum -y remove MySQL-*-advanced-5.6.25-1.el6.x86_64;(不推薦)4.安裝軟件:rpm -ivh replacefiles MySQL-server-advanced-5.6.26-1.el6.x86_64.
35、rpm MySQL-client-advanced-5.6.26-1.el6.x86_64.rpm;5.拷貝回配置文件:cp /tmp/mbackup/f /etc/f;6.嘗試重啟:service mysql restart;7.執(zhí)行更新:mysql_upgrade -uroot -p;8.查看生成的更新文件并且嘗試登錄查看版本信息:less $MYSQL_DATADIR/mysql_upgrade_info;使用多個(gè)服務(wù)器1.要在運(yùn)行生產(chǎn)服務(wù)器的同一臺(tái)計(jì)算機(jī)上測試MySQL的新發(fā)行版時(shí),需要運(yùn)行多個(gè)服務(wù)器;假定每個(gè)組具有其自己的指定root用戶,該用戶無法查看屬于其他組的數(shù)據(jù)庫,如果所有
36、客戶機(jī)將共享同一服務(wù)器則可能會(huì)這樣;2.不允許任何服務(wù)器共享必須由單個(gè)服務(wù)器獨(dú)占使用的資源;3.mysqld_multi腳本設(shè)計(jì)用來管理多個(gè)mysqld進(jìn)程,這些進(jìn)程監(jiān)聽不同UNIX套接字文件和TCP/IP端口上的連接,該腳本搜索f中名為mysqldN的組,然后將該N的設(shè)置應(yīng)用于編號(hào)的實(shí)例;例如,要啟動(dòng)兩個(gè)mysqld實(shí)例,它們分別應(yīng)用來自f部分mysqld3和mysqld5的設(shè)置,請(qǐng)運(yùn)行以下命令:shell mysqld_multi start 3, 5多個(gè)服務(wù)器選項(xiàng)使用mysqld或mysqld_multi以及每個(gè)服務(wù)器函數(shù)的相應(yīng)選項(xiàng)來調(diào)用每個(gè)MySQL服務(wù)器:1.數(shù)據(jù)目錄:使用datad
37、ir選項(xiàng)的唯一值啟動(dòng)每個(gè)服務(wù)器;2.網(wǎng)絡(luò):通過使用port,socket和shared-memory-basename選項(xiàng)的唯一值啟動(dòng)每個(gè)服務(wù)器,將每個(gè)服務(wù)器設(shè)置為使用其自己的網(wǎng)絡(luò)接口;3.組名稱:使用mysqld_multi時(shí),每個(gè)服務(wù)器組在Linux或UNIX上必須具有唯一的mysqldN名稱;4.日志文件:每個(gè)服務(wù)器必須具有其自己的日志和PID文件;5.InnoDB表空間和日志文件:不能由多個(gè)服務(wù)器共享;6.Windows服務(wù)名稱:每個(gè)mysqld Windows服務(wù)必須使用唯一的服務(wù)名稱,通過使用install設(shè)置服務(wù)名稱;服務(wù)器啟動(dòng)時(shí),它們從標(biāo)準(zhǔn)選項(xiàng)文件中的各個(gè)相應(yīng)服務(wù)組中讀取選項(xiàng);
38、練習(xí)任務(wù)1.創(chuàng)建和導(dǎo)入world_innodb數(shù)據(jù)庫;$ mysql -uroot -p;mysql CREATE DATABASE world_innodb;mysql USE world_innodbmysql SET autocommit=0;mysql SOURCE /labs/world_innodb.sql;mysql SET autocommit=1; / 為了提高運(yùn)行速度,批量提交;2.查看本地MySQL服務(wù)器數(shù)據(jù)目錄;mysql SHOW VARIABLES LIKE datadirG3.檢查MySQL服務(wù)器的狀態(tài);service mysql status;4.關(guān)閉/啟動(dòng)My
39、SQL服務(wù)器;service mysql stop/start;補(bǔ)充:源碼安裝MySQL1.準(zhǔn)備安裝工具:yum -y install gcc* make* perl*;- cmake:從Mysql5.5以后使用cmake編譯,可以從下載最新版本;- GUN make:操作系統(tǒng)自帶;- gcc:操作系統(tǒng)自帶;- perl:操作系統(tǒng)自帶;- libncurses5-dev(ncurses-devel):運(yùn)行cmake必須的包,如果沒有安裝會(huì)報(bào)錯(cuò).2.安裝cmake:- 解壓壓縮包:tar -zxvf cmake-VERSION.tar.gz;- 進(jìn)入到cmake的解壓縮目錄,執(zhí)行./config
40、ure命令生成makefile;- 執(zhí)行make;make install;命令生成安裝軟件并安裝cmake;- 軟件安裝到了/usr/local/share/cmake-VERSION/目錄下,執(zhí)行文件在/usr/local/bin目錄下;3.安裝ncurses-devel插件- 在Debian和Ubuntu上的包名是libncurses5-dev;- 在RHEL和其它版本上是ncurses-devel,執(zhí)行:yum install -y ncurses-devel*;- 如果不安裝會(huì)出現(xiàn)以下錯(cuò)誤;4.創(chuàng)建mysql用戶:useradd mysql;5.解壓縮mysql5.5的源碼包:tar
41、 -zxvf mysql-VERSION.tar.gz;6.進(jìn)入目錄mysql-VERSION目錄;7.執(zhí)行cmake命令生成makefile(MyISAM,MERGE,MEMBER和CSV四種引擎默認(rèn)靜態(tài)編譯);cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STO
42、RAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_TCP_PORT=33068.編譯文件:make;make install;在mysql的安裝目錄下生成可執(zhí)行文件,并自動(dòng)創(chuàng)建了data文件(可以手動(dòng)再創(chuàng)建一個(gè)logs目錄,用來存放生成的日志文件,與數(shù)據(jù)目錄不在同一塊磁盤上,減小I/O并發(fā)),修改目錄權(quán)限為mysql:
43、chown mysql:mysql data;9.編寫/etc/f;10.在配置文件下添加目錄配置,指定數(shù)據(jù)文件的位置;bsedir = /usr/local/mysql/datadir = /usr/local/mysql/data11.數(shù)據(jù)庫的初始化,主要是數(shù)據(jù)庫的創(chuàng)建,幫助文件的填充,用戶文件的填充,執(zhí)行:./scripts/mysql_install_db defaults-file=./f user=mysql(在f配置文件中添加user參數(shù),并且拷貝到/etc目錄下就不用再加參數(shù),執(zhí)行./scripts/mysql_install_db即可)12.啟動(dòng)服務(wù)器:./bin/mysql
44、d_safe -user=mysql &;13.修改MYSQL服務(wù)器root用戶的密碼:./bin/mysqladmin u root password pwd;14.登錄:- 如果沒有設(shè)置root的密碼,默認(rèn)是空密碼,使用./bin/mysql就可以登錄;- 如果設(shè)置了root密碼,則登錄時(shí)要數(shù)據(jù)密碼驗(yàn)證./bin/mysql uroot -p;- 進(jìn)入數(shù)據(jù)庫后修改用戶密碼:update user set password=PASSWORD(123456) where user=root;15.把mysql添加到環(huán)境變量:- 打開root/.bash_profile文件;- 修改環(huán)境變量:P
45、ATH=/usr/local/mysql/bin:$PATH,盡量把mysql的bin目錄放在PATH的前面,使用mysql的工具的時(shí)候提高優(yōu)先級(jí),否則可能會(huì)使用系統(tǒng)預(yù)裝的mysql的工具,造成版本不一致的錯(cuò)誤;- 使環(huán)境變量立即生效:. ./.bash_profile;16.把配置文件放到默認(rèn)讀取的路徑,并在配置文件中指定啟動(dòng)用戶為mysql,添加開機(jī)啟動(dòng):- 拷貝文件到開機(jī)啟動(dòng)目錄:cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld;- 添加開機(jī)啟動(dòng)項(xiàng):chkconfig add mysqld;chk
46、config mysqld on;- 啟動(dòng)/關(guān)閉mysql服務(wù):service mysqld start/stop;配置文件f(RPM安裝)配置文件f(編譯安裝)三、基本配置配置選項(xiàng)1.預(yù)編譯的選項(xiàng):(1).在生成RPM包時(shí)指定的選項(xiàng);(2).在源碼安裝時(shí)指定的選項(xiàng);2.命令行選項(xiàng):(1).可以在啟動(dòng)服務(wù)器(mysqld)時(shí)在命令行上指定啟動(dòng)選項(xiàng);(2).默認(rèn)情況下,服務(wù)器在運(yùn)行時(shí)使用其配置變量的預(yù)編譯值;但是,如果默認(rèn)值不適合環(huán)境,則可添加運(yùn)行時(shí)選項(xiàng),讓服務(wù)器使用其他值來執(zhí)行以下操作:.指定重要的目錄和文件的位置;.控制服務(wù)器寫入的日志文件;.覆蓋服務(wù)器與性能相關(guān)的變量的內(nèi)置值(即,控制最大
47、同時(shí)連接數(shù)以及緩沖區(qū)和高速緩存的大小);.在服務(wù)器啟動(dòng)時(shí)啟用或禁用預(yù)編譯的存儲(chǔ)引擎通過使用命令行選項(xiàng)或選項(xiàng)文件,或者使用兩者的組合,可以指定服務(wù)器啟動(dòng)時(shí)的運(yùn)行時(shí)選項(xiàng)(以更改其配置和行為);(3).命令行選項(xiàng)優(yōu)先于選項(xiàng)文件中的任何設(shè)置3.配置文件選項(xiàng):在配置文件f中指定的啟動(dòng)選項(xiàng);最常用的方式;4.查看相關(guān)幫助mysqld verbose help;使用選項(xiàng)文件的原因1.將選項(xiàng)放在文件中后,不需要每次啟動(dòng)服務(wù)器時(shí)都在命令行上指定選項(xiàng);對(duì)于復(fù)雜的選項(xiàng)(如用于配置InnoDB表空間的選項(xiàng)),這樣做更加方便,并且更不容易出錯(cuò);2.如果所有服務(wù)器選項(xiàng)都在一個(gè)選項(xiàng)文件中,則可概覽服務(wù)器的配置情況;3.My
48、SQL程序可以訪問多個(gè)選項(xiàng)文件中的選項(xiàng),要?jiǎng)?chuàng)建或修改某個(gè)選項(xiàng)文件,必須擁有該文件的寫入權(quán)限;客戶機(jī)程序僅需要讀取訪問權(quán)限;選項(xiàng)文件組1.選項(xiàng)文件中的選項(xiàng)按組進(jìn)行組織,每個(gè)組前面有一個(gè)為組命名的group-name行,通常,組名稱是選項(xiàng)組適用的程序的類別或名稱;選項(xiàng)組示例包括:2.client:用于指定適用于所有客戶機(jī)程序的選項(xiàng);client組的一個(gè)常見用途是指定連接參數(shù),因?yàn)樵谝话闱闆r下,不管使用什么客戶機(jī)程序,都要建立到同一個(gè)服務(wù)器的連接;3.mysql和mysqldump:分別用于指定適用于mysql和mysqldump客戶機(jī)的選項(xiàng);此外,也可以單獨(dú)指定其他客戶機(jī)選項(xiàng);4.server:用
49、于指定同時(shí)適用于mysqld和mysqld_safe服務(wù)器程序的選項(xiàng);5.mysqld,mysqld-5.6,mysqld56和mysqld_safe:用于指定適用于不同服務(wù)器版本或啟動(dòng)方法的選項(xiàng);編寫選項(xiàng)文件1.要?jiǎng)?chuàng)建或修改某個(gè)選項(xiàng)文件,最終用戶必須擁有該文件的寫入權(quán)限;服務(wù)器本身僅需要讀取訪問權(quán)限;服務(wù)器讀取選項(xiàng)文件,但不創(chuàng)建或修改選項(xiàng)文件;2.如何在選項(xiàng)文件中寫入一個(gè)選項(xiàng):(1).使用長選項(xiàng)格式(像命令行上使用的那樣),但省略前導(dǎo)短劃線;(2).如果某個(gè)選項(xiàng)取值,則允許在等號(hào)兩則加空格( = );此規(guī)則不適用于在命令行上指定的選項(xiàng),eg:指定默認(rèn)選項(xiàng)文件;3.在幻燈片上的示例中,請(qǐng)注意以
50、下方面:(1).client:此組中的選項(xiàng)適用于所有標(biāo)準(zhǔn)客戶機(jī);.host:指定服務(wù)器主機(jī)名;.compress:指示客戶機(jī)/服務(wù)器協(xié)議對(duì)通過網(wǎng)絡(luò)發(fā)送的通信使用壓縮;(2).mysql:此組中的選項(xiàng)僅適用于mysql客戶機(jī);show-warnings:指示MySQL在每條語句后顯示任何當(dāng)前警告;(3).mysql客戶機(jī)同時(shí)使用client和mysql組中的選項(xiàng),因此將使用顯示的全部三個(gè)選項(xiàng);選項(xiàng)文件位置1.Linux:(1)./etc/f;(2)./etc/mysql/f;(3)./usr/local/mysql/etc/f;(4)./.f;(5).如果設(shè)置了MYSQL_HOME環(huán)境變量,則將
51、搜索$MYSQL_HOME/f文件;2.Windows:(1).C:目錄下的my.ini和f;(2).C:Windows(或C:WinNT)目錄;(3).C:Program FilesMySQLMySQL Server目錄;3.MySQL命令行程序會(huì)在MySQL安裝目錄中搜索選項(xiàng)文件;選項(xiàng)文件中的啟動(dòng)選項(xiàng)要在選項(xiàng)文件中指定服務(wù)器選項(xiàng),需要在mysqld或server組下指示特定選項(xiàng);1.日志記錄:可以通過啟用所需日志的類型為服務(wù)器啟用日志記錄;比如:(1).general_log # 常規(guī)查詢?nèi)罩?(2).log-bin # 二進(jìn)制日志;(3).slow_query_log # 慢速查詢?nèi)罩?
52、2.默認(rèn)存儲(chǔ)引擎:可以使用default-storage-engine選項(xiàng)指定不同于InnoDB的默認(rèn)存儲(chǔ)引擎;3.系統(tǒng)變量:可以通過設(shè)置服務(wù)器系統(tǒng)變量值來定制服務(wù)器;(1).max_connections=200 # 增加允許的最大連接數(shù);(2).innodb_buffer_pool_instances=4 # 增加InnoDB緩沖池?cái)?shù)的默認(rèn)值;4.共享內(nèi)存:在Windows上默認(rèn)不啟用;可以使用shared-memory選項(xiàng)來啟用命名管道支持;5.命名管道:要啟用命名管道支持,使用enable-named-pipe選項(xiàng);樣例選項(xiàng)文件1.Linux:(1).對(duì)于RPM安裝,樣例選項(xiàng)文件在/u
53、sr/share/mysql中;(2).對(duì)于TAR文件安裝,樣例文件在MySQL安裝目錄下的share目錄中;2.Windows:選項(xiàng)文件位于MySQL安裝目錄(my.ini)中;3.如果多次指定一個(gè)選項(xiàng)(不管是在同一個(gè)選項(xiàng)文件中,還是在多個(gè)選項(xiàng)文件中),則最后出現(xiàn)的選項(xiàng)值優(yōu)先;(1).defaults-file=:使用指定位置的選項(xiàng)文件;(2).defaults-extra-file=:使用指定位置的其他選項(xiàng)文件;(3).no-defaults:忽略所有選項(xiàng)文件;eg:要使用/etc/f文件而忽略標(biāo)準(zhǔn)選項(xiàng)文件,可以:shell mysql defaults-file=/etc/f;顯示選項(xiàng)文
54、件中的選項(xiàng)1.# my_print_defaults defaults-file=/usr/local/mysql/f client mysql mysqld;2.# mysql print-defaults:貌似打印不出來;遮蔽驗(yàn)證選項(xiàng)1.建議不要使用mysql -uroot -poracle形式在命令行上指定口令;缺點(diǎn):可以通過history命令查看到密碼;2.為方便起見,可以將口令放在client選項(xiàng)組中,但口令以純文本方式存儲(chǔ),對(duì)選項(xiàng)文件有讀取訪問權(quán)限的任何人都能輕易地看到;3.利用mysql_config_editor實(shí)用程序,可以將驗(yàn)證憑證存儲(chǔ)在加密的登錄文件.f中;在Linux和
55、UNIX上,該文件位置是當(dāng)前用戶的主目錄;MySQL客戶機(jī)程序以后可以讀取該文件以獲取用于連接到MySQL服務(wù)器的驗(yàn)證憑證;TIPS:加密方法是可逆的,因此不應(yīng)假設(shè)憑證對(duì)任何有文件讀取特權(quán)的人都是安全的;相反,該功能使得避免使用純文本憑證變得更容易;4.文件說明:.f登錄文件的未加密格式由選項(xiàng)組組成,類似于其他選項(xiàng)文件;.f中的每個(gè)選項(xiàng)組稱為“登錄路徑”,僅允許一組有限的選項(xiàng):主機(jī),用戶和口令;可將登錄路徑視為一組值,可以指示服務(wù)器主機(jī)以及用于服務(wù)器驗(yàn)證的憑證;eg:adminuser = rootpassword = oraclehost = 登錄路徑1.創(chuàng)建登錄路徑:mysql_confi
56、g_editor set login-path=admin host=localhost user=root password;如果調(diào)用mysql_config_editor時(shí)不使用login-path選項(xiàng),則將使用client登錄路徑;默認(rèn)情況下,所有標(biāo)準(zhǔn)客戶機(jī)都使用此登錄路徑;(1).查看生成的文件:ll /.f;(2).登錄:mysql login-path=admin;2.以純文本格式查看單個(gè)登錄路徑:mysql_config_editor print login-path=admin;3.以純文本格式查看所有登錄路徑:mysql_config_editor print all;4.刪
57、除登錄路徑:mysql_config_editor remove login-path=admin;服務(wù)器系統(tǒng)變量1.查看所有參數(shù)的默認(rèn)值和讀取選項(xiàng)文件之后的值:mysqld verbose help;2.查看所有參數(shù)的默認(rèn)值和忽略任何選項(xiàng)文件中的設(shè)置:mysqld no-defaults verbose help;3.查看變量值,沒有其他啟動(dòng)選項(xiàng):SHOW GLOBAL VARIABLES;動(dòng)態(tài)系統(tǒng)變量1.MySQL維護(hù)了兩種包含系統(tǒng)變量的作用域:(1).GLOBAL變量影響服務(wù)器的整體操作;(2).SESSION變量影響其對(duì)單個(gè)客戶機(jī)連接的操作;(3).變量存在于任一作用域中,也可同時(shí)存在
58、于兩個(gè)作用域中;2.變量及其作用域的示例包括:(1).僅全局:key_buffer_size,query_cache_size;(2).全局和會(huì)話:sort_buffer_size,max_join_size;(3).僅會(huì)話:timestamp,error_count;3.在更改變量值時(shí),適用以下幾點(diǎn):(1).設(shè)置會(huì)話變量不需要任何特殊特權(quán),但客戶機(jī)只能更改自己的會(huì)話變量,不能更改其他任何客戶機(jī)的會(huì)話變量;(2).LOCAL和local是SESSION和session的同義詞;(3).如果不指定GLOBAL或SESSION,則當(dāng)會(huì)話變量存在時(shí),SET將更改會(huì)話變量;會(huì)話變量不存在時(shí),將產(chǎn)生錯(cuò)誤
59、;TIPS:修改的全局參數(shù)不會(huì)在選項(xiàng)文件中反應(yīng)出來,需要手動(dòng)修改,以便下次啟動(dòng)后生效;與Oracle對(duì)比;顯示動(dòng)態(tài)系統(tǒng)變量設(shè)定特定的變量時(shí)要注意賦值的類型; 結(jié)構(gòu)化系統(tǒng)變量;1.MySQL支持一種結(jié)構(gòu)化變量類型,該變量類型可以指定控制鍵高速緩存操作的參數(shù);鍵高速緩存結(jié)構(gòu)化變量具有以下組件:(1).key_buffer_size;(2).key_cache_block_size;(3).key_cache_division_limit;(4).key_cache_age_threshold;2.要引用結(jié)構(gòu)化變量實(shí)例的組件,可使用復(fù)合名稱:instance_ponent_name;示例:hot_c
60、ache.key_buffer_size/hot_cache.key_cache_block_size;cold_cache.key_cache_block_size;3.相關(guān)文檔:/doc/refman/5.6/en/structured-system-variables.html。服務(wù)器狀態(tài)變量1.LOCAL是SESSION的同義詞;2.如果沒有修飾符,則默認(rèn)值為SESSION;3.SHOW STATUS示例:mysql SHOW GLOBAL STATUS;SQL模式SQL模式由控制查詢處理某些方面的可選值組成,設(shè)置了相應(yīng)的SQL模式后,客戶機(jī)就可以對(duì)以下項(xiàng)目進(jìn)行某種程度的控制:1.輸入
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年重慶市安全員知識(shí)題庫
- 2025江蘇省建筑安全員考試題庫附答案
- 入職與團(tuán)隊(duì)建設(shè)培訓(xùn)課件
- 有機(jī)合成的關(guān)鍵課件
- 【大學(xué)課件】建設(shè)工程 投標(biāo)
- 【初中數(shù)學(xué)課件】中考《整式》復(fù)習(xí)課件
- 《廣西大學(xué)商學(xué)院》課件
- 會(huì)計(jì)憑證課件
- 《EMD原理動(dòng)畫演示》課件
- 一年級(jí)數(shù)學(xué)蘇教版元角分
- 供應(yīng)鏈金融大數(shù)據(jù)平臺(tái)商業(yè)計(jì)劃書課件
- DB3302-T 1015-2022 城市道路清掃保潔作業(yè)規(guī)范
- 管線探測技術(shù)介紹
- 南醫(yī)大藥用植物學(xué)實(shí)驗(yàn)指導(dǎo)14被子植物(四):傘形科、唇形科、馬鞭草科、茜草科
- 2023年新改版教科版四年級(jí)下冊(cè)科學(xué)練習(xí)題(一課一練+單元+期中+期末)
- 手術(shù)室提高患者術(shù)中保溫措施的執(zhí)行率PDCA課件
- 醫(yī)院外科腸梗阻出院小結(jié)范文
- 2023年海南省三支一扶考試真題
- 風(fēng)機(jī)支吊架計(jì)算表
- 化妝品中的植物活性成分
- 基本事實(shí)要素表
評(píng)論
0/150
提交評(píng)論