菜鸟崛起 DB Chapter 2 MySQL 5.6的概述与安装
在上文菜鳥崛起 DB Chapter 1 數(shù)據(jù)庫概述我們初步認(rèn)識了數(shù)據(jù)庫,也知道市面上常見的幾種數(shù)據(jù)庫,下面我們就針對常見的MySQL數(shù)據(jù)庫展開對DataBase的探討。
2.1 ?MySQL介紹
MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),目前屬于 Oracle?旗下產(chǎn)品。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在 WEB 應(yīng)用方面,MySQL是最好的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫管理系統(tǒng)) 應(yīng)用軟件。
MySQL是一種關(guān)系數(shù)據(jù)庫管理系統(tǒng),關(guān)系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉庫內(nèi),這樣就增加了速度并提高了靈活性。
MySQL所使用的 SQL 語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL 軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫。
2.1.1 ?MySQL的版本
- MySQL Community Server 社區(qū)版本,開源免費(fèi),但不提供官方技術(shù)支持。
- MySQL Enterprise Edition 企業(yè)版本,需付費(fèi),可以試用30天。
- MySQL Cluster 集群版,開源免費(fèi)。可將幾個(gè)MySQL Server封裝成一個(gè)Server。
- MySQL Cluster CGE 高級集群版,需付費(fèi)。
- MySQL Workbench(GUI TOOL)一款專為MySQL設(shè)計(jì)的ER/數(shù)據(jù)庫建模工具。它是著名的數(shù)據(jù)庫設(shè)計(jì)工具DBDesigner4的繼任者。MySQL Workbench又分為兩個(gè)版本,分別是社區(qū)版(MySQL Workbench OSS)、商用版(MySQL Workbench SE)。
MySQL的命名機(jī)制由3個(gè)數(shù)字和一個(gè)后綴組成:如mysql-5.6.10
第一個(gè)數(shù)字5是主版本號,描述了文件格式,所有版本5的發(fā)行版都有相同的文件格式。
第二個(gè)數(shù)字6是發(fā)行級別,主版本號和發(fā)行級別組合在一起就構(gòu)成了發(fā)行序列號
第三個(gè)數(shù)字10是此發(fā)行系列的版本號
2.1.2 ?MySQL的優(yōu)劣
2.1.2.1 ?MySQL的優(yōu)點(diǎn)
1.它使用的核心線程是完全多線程,支持多處理器。
2.有多種列類型:1、2、3、4、和8字節(jié)長度自有符號/無符號整數(shù)、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、 TIMESTAMP、YEAR、和ENUM類型。
3.它通過一個(gè)高度優(yōu)化的類庫實(shí)現(xiàn)SQL函數(shù)庫并像他們能達(dá)到的一樣快速,通常在查詢初始化后不該有任何內(nèi)存分配。沒有內(nèi)存漏洞。
4.全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函數(shù)(COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、MAX()和MIN())。你可以在同一查詢中混來自不同數(shù)據(jù)庫的表。
5.支持ANSI SQL的LEFT 0UTER JOIN和ODBC。
6.所有列都有缺省值。你可以用INSERT插入一個(gè)表列的子集,那些沒用明確給定值的列設(shè)置為他們的缺省值。
7.MySQL可以工作在不同的平臺上。支持C、C++、Java、Perl、PHP、Python和TCL API。
2.1.2.2 ?MySQL的缺點(diǎn)
1、 MySQL最大的缺點(diǎn)是其安全系統(tǒng),主要是復(fù)雜而非標(biāo)準(zhǔn),另外只有到調(diào)用mysqladmin來重讀用戶權(quán)限時(shí)才發(fā)生改變。
2、 MySQL的另一個(gè)主要的缺陷之一是缺乏標(biāo)準(zhǔn)的RI(Referential Integrity-RI)機(jī)制;Rl限制的缺乏(在給定字段域上的一種固定的范圍限制)可以通過大量的數(shù)據(jù)類型來補(bǔ)償。
3、 MySQL沒有一種存儲(chǔ)過程(Stored Procedure)語言,這是對習(xí)慣于企業(yè)級數(shù)據(jù)庫的程序員的最大限制。
4、 MySQL不支持熱備份。
l?熱備份是在數(shù)據(jù)庫運(yùn)行的情況下,采用archivelog mode方式備份數(shù)據(jù)庫的方法。即熱備份是系統(tǒng)處于正常運(yùn)轉(zhuǎn)狀態(tài)下的備份。所以,如果你有昨天夜里的一個(gè)冷備份而且又有今天的熱備份文件,在發(fā)生問題時(shí),就可以利用這些資料恢復(fù)更多的信息。熱備份要求數(shù)據(jù)庫在Archivelog()方式下操作,并需要大量的檔案空間。一旦數(shù)據(jù)庫運(yùn)行在archivelog狀態(tài)下,就可以做備份了。
l?冷備份(cold backup),也被稱為離線備份,是指在關(guān)閉數(shù)據(jù)庫并且數(shù)據(jù)庫不能更新的狀況下進(jìn)行的數(shù)據(jù)庫完整備份。
5、?MySQL的價(jià)格隨平臺和安裝方式變化。Linux的MySQL如果由用戶自己或系統(tǒng)管理員而不是第三方安裝則是免費(fèi)的,第三方案則必須付許可費(fèi)。Unix或Linux 自行安裝 免費(fèi) 、Unix或Linux 第三方安裝 200美元,
2.2 ?MySQL 5.6的新功能
我們用慣了MySQL5.5,那么陡然更換到高版本的MySQL上,是不是應(yīng)該了解一下MySQL高版本的新功能呢?MySQL5.6在原有5.5的基礎(chǔ)上新增加了如下幾個(gè)功能:
l?子查詢最佳化:通過優(yōu)化子查詢,可以提高執(zhí)行效率,主要表現(xiàn)在查詢的結(jié)果集合、分類和返回的執(zhí)行次數(shù)上。
l?強(qiáng)化Optimizer Diagnostics功能:運(yùn)用EXPLAIN執(zhí)行INSERT、UPDATE和DELETE,EXPLAIN以JSON格式輸出,提供更精確的最佳化指標(biāo)和絕佳的可讀性,Optimizer Traces功能更可追蹤最佳化決策過程。
l?通過強(qiáng)化InnoDB儲(chǔ)存引擎,提升效能處理量和應(yīng)用軟件的可用性:提升處理和只讀量高達(dá)230%,InnoDB重構(gòu)得以盡量減少傳統(tǒng)執(zhí)行緒、沖洗和凈化互斥的沖突和瓶頸,在高負(fù)載的OLTP系統(tǒng)展現(xiàn)更優(yōu)異的數(shù)據(jù)同步性,顯著提升只讀和交易工作負(fù)載的處理量。
l?大幅度提升可用性:數(shù)據(jù)庫管理員運(yùn)用在線數(shù)據(jù)定義語言作業(yè),可執(zhí)行新增索引和窗體變更功能。并同時(shí)更新應(yīng)用程序。
l?新增Index Condition Pushdown(ICP)和Batch Key Access(BKA)功能,提升特定查詢量高達(dá)280倍。
l?InnoDB全文檢索功能:開發(fā)人員可以在InnoDB窗體上就建立全文索引功能,以呈現(xiàn)文字搜尋結(jié)果,加快搜尋單字和語句。
l?自我修復(fù)復(fù)制叢集:新增的Global Transatction Identifiers and Utilities簡化自動(dòng)偵測和復(fù)原功能。當(dāng)數(shù)據(jù)庫發(fā)生損毀時(shí),數(shù)據(jù)庫管理員無需介入,即可運(yùn)用Crash-Safe Replication功能,自動(dòng)將二進(jìn)制記錄和備份數(shù)據(jù)恢復(fù)至正確位置。Checksums可透過自動(dòng)偵測和警示錯(cuò)誤的功能,跨叢集保持?jǐn)?shù)據(jù)的完整性。
l?高效能復(fù)制叢集:通過Multi-Threaded Slaves,Binlog Group and Optimized Row-Based Replication提高復(fù)制能力高達(dá)5倍之多,用戶向外擴(kuò)充其跨商品系統(tǒng)的工作負(fù)載時(shí),得以大幅提升復(fù)制的效能和效率。
l?時(shí)間延長復(fù)制:防止主計(jì)算機(jī)的作業(yè)失誤,例如意外刪除窗體。
l?強(qiáng)化的PERFORMANCE_SCHEMA:協(xié)助用戶得以監(jiān)控使用最多資源的密集查詢指令、對象、用戶和應(yīng)用程序,并可總集查詢、執(zhí)行緒、用戶、主機(jī)和對象的統(tǒng)計(jì)數(shù)據(jù)匯整成新的摘要頁面,新增功能能讓預(yù)設(shè)配置更加簡易,而且耗費(fèi)不到5%的成本。
l?MySQL5.6納入的新功能包括精確空間操作的地理信息系統(tǒng)(Geographic Information System)、強(qiáng)化的IPv6設(shè)備以及最佳化的服務(wù)器默認(rèn)值。
2.3 ?MySQL的安裝
https://wenku.baidu.com/view/5c0cb65ddf80d4d8d15abe23482fb4daa58d1dea.html
MySQL的下載
我們從官網(wǎng)下載最新的MySQL5.6進(jìn)行安裝:
根據(jù)計(jì)算機(jī)版本下載MySQL,這里下載是免安裝版:
MySQL免安裝版的配置
解壓下載的MySQL:解壓后如下圖
將解壓目錄下默認(rèn)文件my-default.ini?拷貝一份,改名my.ini?復(fù)制下面的配置信息到my.ini?保存,如果沒有my-default.ini,可自己新建my.ini或者從其他地方中獲取
| [client] port=3306 default-character-set=utf8 [mysqld] port=3306 character_set_server=utf8 basedir=D:\Database\mysql-5.6.38-winx64 #解壓目錄 ? datadir=D:\Database\mysql-5.6.38-winx64\data #解壓目錄下data目錄 ? sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [WinMySQLAdmin] D:\Database\mysql-5.6.38-winx64\bin\mysqld.exe |
添加環(huán)境變量
1)右鍵單擊我的電腦->屬性->高級系統(tǒng)設(shè)置(高級)->環(huán)境變量點(diǎn)擊系統(tǒng)變量下的新建按鈕
輸入變量名:MYSQL_HOME?
輸入變量值:D:\Database\mysql-5.6.38-winx64???即為mysql的自定義解壓目錄。
2)選擇系統(tǒng)變量中的Path?點(diǎn)擊編輯按鈕在變量值中添加變量值:%MYSQL_HOME%\bin?
注意是在原有變量值后面加上這個(gè)變量,;隔開,不能刪除原來的變量值,
將MySQL注冊為windows系統(tǒng)服務(wù)
1)從控制臺進(jìn)入到MySQL解壓目錄下的bin?目錄下:
2)輸入服務(wù)安裝命令:
mysqld?install?MySQL?--defaults-file="D:\Database\mysql-5.6.38-winx64\my.ini"?
#解壓目錄下修改的my.ini文件
安裝成功后會(huì)提示服務(wù)安裝成功。
?#注:my.ini文件放在MySQL解壓后的根目錄下
此處配置服務(wù)命令:配置服務(wù)mysqld --install
#移除服務(wù)命令為:mysqld?remove?
啟動(dòng)MySQL服務(wù)
方法一:啟動(dòng)服務(wù)命令為:net?start?mysql?
方法二:打開管理工具服務(wù),找到MySQL服務(wù)。
通過右鍵選擇啟動(dòng)或者直接點(diǎn)擊左邊的啟動(dòng)來啟動(dòng)服務(wù)。
修改root賬號的密碼
有問題的修改:
錯(cuò)誤解決:
我們在上面修改完密碼后,我們進(jìn)行登錄發(fā)現(xiàn)提示如下錯(cuò)誤:
我們姑且不論為何出現(xiàn)這個(gè)錯(cuò)誤,先來介紹該如何解決:
解決方案:
1、? 停止服務(wù):停止MySQL服務(wù);
2、? 跳過驗(yàn)證:修改MySQL安裝目錄下的my.ini配置文件,使登錄時(shí)跳過權(quán)限檢查;
3、? 修改密碼:啟動(dòng)MySQL服務(wù),登錄MySQL,此時(shí)提示輸入密碼,輸入任意密碼回車即可進(jìn)入MySQL。然后通過SQL語句修改root用戶的密碼;
4、? 重啟服務(wù):將my.ini文件中加入的跳過權(quán)限語句刪除或加#號注釋。重啟服務(wù),使用修改后的密碼登錄即可。
Windows系統(tǒng)具體操作:
1、? 停止服務(wù):
方法1:使用dos命令net stop mysql即可;使用這種方式MySQL服務(wù)必須為安裝的服務(wù),否則會(huì)出現(xiàn)服務(wù)名無效,這時(shí)可以使用第二種方法。
方法2:進(jìn)入【控制面板】-->【管理工具】?-->【服務(wù)】,找到MySQL服務(wù),點(diǎn)擊左邊的停止。
2、? 跳過驗(yàn)證:進(jìn)入MySQL的安裝路徑(以默認(rèn)安裝路徑為例)C:\Program Files\MySQL\MySQL Server 5.1\,找到my.ini配置文件(些文件記錄MySQL的常規(guī)參數(shù),每次啟動(dòng)服務(wù)都會(huì)先加載此文件),在my.ini配置文件的最后一行加入skip_grant_tables,此語句可以忽略登錄檢查。
3、? 修改密碼:啟動(dòng)MySQL服務(wù),進(jìn)入dos環(huán)境,輸入mysql -u root -p登錄MySQL(如果安裝時(shí)沒有勾選添加環(huán)境變量,需要先使用cd命令進(jìn)入MySQL安裝目錄),此時(shí)提示輸入密碼,輸入任意密碼回車即可進(jìn)入MySQL,出現(xiàn)mysql>控制符,此時(shí)表示已經(jīng)成功登錄MySQL;mysql> USEmysql???(將數(shù)據(jù)庫切換至mysql庫中)
mysql> UPDATE user SET password=PASSWORD(‘newpswd’)WHERE user=’root’??????????(修改密碼)
password函數(shù)為MySQL內(nèi)部函數(shù),其中newpswd為修改后的新密碼。
4、? 重啟服務(wù):
將my.ini文件中加入的跳過權(quán)限語句刪除或加#號注釋。重啟服務(wù),使用修改后的密碼登錄即可。
經(jīng)過上面的解決我們可以通過用戶名密碼來進(jìn)行登錄了,實(shí)際上我們問題的出現(xiàn)就在于我們初始設(shè)置密碼的操作錯(cuò)誤了,所以使用我們認(rèn)識正確的密碼登錄,卻一直不能獲取權(quán)限;正確的設(shè)置方法是:
UPDATE user SET password=PASSWORD(‘123’)WHERE user=’root’?
其中123是我們的新密碼,PASSWORD是一個(gè)關(guān)鍵字不用搭理;
轉(zhuǎn)載于:https://www.cnblogs.com/lin-jing/p/7967013.html
總結(jié)
以上是生活随笔為你收集整理的菜鸟崛起 DB Chapter 2 MySQL 5.6的概述与安装的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tensorflow基础-mnist数据
- 下一篇: zoj 3329 概率dp