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