sql發生錯誤5拒絕訪問,mysql發生系統錯誤5_[玩轉MySQL之一]MySQL體系架構簡介

 2023-12-10 阅读 29 评论 0

摘要:引言MySQL是一個典型的C/S架構程序,MySQL Server提供數據庫服務,完成客戶端的請求和操作,Client負責連接到Server。MySQL和其他關系型數據庫不一樣的地方在于它的彈性以及可以通過插件形式提供不同種類的存儲引擎,MySQL請求處理過程會根據不同的存

引言

MySQL是一個典型的C/S架構程序,MySQL Server提供數據庫服務,完成客戶端的請求和操作,Client負責連接到Server。MySQL和其他關系型數據庫不一樣的地方在于它的彈性以及可以通過插件形式提供不同種類的存儲引擎,MySQL請求處理過程會根據不同的存儲引擎發生變化,比如事務性的InnoDB和非事務性的MyISAM,數據的存儲和SQL的執行會產生很大的差異。本文以MySQL5.7為例,簡單介紹MySQL的物理和邏輯架構。

1. MySQL物理結構

efb89508df9169d059a96099be876b85.png

1.1 配置文件

  • auto.cnf: 配置了MySQL Server的UUID
  • my.cnf: MySQL的配置文件

1.2 其他重要文件

  • -basedir=dir_name: MySQL安裝的二進制文件目錄
  • -datadir=dir_name: MySQL的數據目錄和
  • -pid-file=file_name: 保存MySQL進程ID文件
  • -log-error=file_name: MySQL錯誤日志文件

2. MySQL邏輯體系架構

76aaf0540305171b4574b8d37e50b3d5.png

MySQL邏輯系統架構分為3層:

  • 應用層
  • MySQL服務層
  • 存儲引擎層

2.1 應用層

sql發生錯誤5拒絕訪問?應用層是MySQL體系架構的最上層,它可其他client-server架構一樣,主要包含如下內容:

  • 連接處理
  • 用戶鑒權
  • 安全管理

1. 連接處理當一個客戶端向服務端發送連接請求后,MySQL server會從線程池中分配一個線程來和客戶端進行連接,以后該客戶端的請求都會被分配到該線程上。MySQL Server為了提高性能,提供了線程池,減少了創建線程和釋放線程所花費的時間。

2. 用戶鑒權 當客戶端向MySQL服務端發起連接請求后,MySQL server會對發起連接的用戶進行鑒權處理,MySQL鑒權依據是: 用戶名,客戶端主機地址和用戶密碼

3. 安全管理 當客戶連接到MySQL server后,MySQL server會根據用戶的權限來判斷用戶具體可執行哪些操作。MySQL 提供的部分權限的如下:

mysql> show privileges G;
*************************** 1. row ***************************
Privilege: AlterContext: TablesComment: To alter the table
*************************** 2. row ***************************
Privilege: Alter routineContext: Functions,ProceduresComment: To alter or drop stored functions/procedures
*************************** 3. row ***************************
Privilege: CreateContext: Databases,Tables,IndexesComment: To create new databases and tables

2.2 MySQL 服務層

該層是MySQL Server的核心層,提供了MySQL Server數據庫系統的所有邏輯功能,該層可以分為如下不同的組件:

  • MySQL Management Server & utilities(系統管理)
  • SQL Interface(SQL 接口)
  • SQL Parser(SQL 解析器)
  • Optimizer (查詢優化器)
  • Caches & buffers(緩存)

MySQL啟動不了,1. MySQL Management Server & utilities(系統管理) 提供了豐富的數據庫管理功能,具體如下:

  • 數據庫備份和恢復
  • 數據庫安全管理,如用戶及權限管理
  • 數據庫復制管理
  • 數據庫集群管理
  • 數據庫分區,分庫,分表管理
  • 數據庫元數據管理

2. SQL Interface(SQL 接口) SQL接口,接收用戶的SQL命令并進行處理,得到用戶所需要的結果,具體處理功能如下:

  • Data Manipulation Language (DML).
  • Data Definition Language (DDL).
  • 存儲過程
  • 視圖
  • 觸發器

3. SQL Parser(SQL 解析器) 解析器的作用主要是解析查詢語句,最終生成語法樹。首先解析器會對查詢語句進行語法分析,如果語句語法有錯誤,則返回相應的錯誤信息。語法檢查通過后,解析器會查詢緩存,如果緩存中有對應的語句,就直接返回結果不進行接下來的優化執行操作。

注:讀者會疑問,從緩存中查出來的數據會不會被修改,與真實的數據不一致,這里讀者大可放心,因為緩存中數據被修改,會被清出緩存。

4. Optimizer(查詢優化器) 優化器的作用主要是對查詢語句進行優化,包括選擇合適的索引,數據的讀取方式。

5. Caches & buffers(緩存) 包括全局和引擎特定的緩存,提高查詢的效率。如果查詢緩存中有命中的查詢結果,則查詢語句就可以從緩存中取數據,無須再通過解析和執行。這個緩存機制是由一系列小緩存組成,如表緩存、記錄緩存、key緩存、權限緩存等。

2.3 存儲引擎層

MySQL server?1. 存儲引擎 存儲引擎是MySQL中具體與文件打交道的子系統,也是MySQL最有特色的地方。MySQL區別于其他數據庫的最重要特點是其插件式的表存儲引擎。他根據MySQL AB公司提供的文件訪問層抽象接口來定制一種文件訪問的機制(該機制叫存儲引擎)。

2. 物理文件 物理文件包括:redolog、undolog、binlog、errorlog、querylog、slowlog、data、index等

3. 參考文獻

MySQL Architecture and ComponentsUnderstanding MySQL Architecture帶你認識 MySQL 之 MySQL 體系結構

更多內容請關注公眾號

d5a591e58f2bcd36cb83e0c0f171d6f3.png

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/194377.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息