MySQL體系架構解析(三):MySQL目錄與啟動配置全解析

MySQL中的目錄和文件

bin目錄

在 MySQL 的安裝目錄下有一個特別重要的 bin 目錄,這個目錄下存放著許多可執行文件。與其他系統的可執行文件類似,這些可執行文件都是與服務器和客戶端程序相關的。
在這里插入圖片描述

啟動MySQL服務器程序

在 UNIX 系統中,用來啟動 MySQL 服務器程序的可執行文件有很多,大多在 MySQL 安裝目錄的 bin 目錄下。

  • mysqld
    mysqld 這個可執行文件就代表著 MySOL 服務器程序,運行這個可執行文件就可以直接啟動一個服務器進程。但這個命令不常用。

  • mysqld_safe
    mysqld_safe 是一個啟動腳本,它會間接的調用 mysqld,而且還順便啟動了另外一個監控進程,這個監控進程在服務器進程掛了的時候,可以幫助重啟它。另外,使用 mysqld_safe 啟動服務器程序時,它會將服務器程序的出錯信息和其他診斷信息重定向到某個文件中,產生出錯日志,這樣可以方便我們找出發生錯誤的原因。

  • mysql.server
    mysql.server 也是一個啟動腳本,它會間接的調用 mysqld_safe,在調用 mysql.server 時在后邊指定start參數就可以啟動服務器程序了

    mysql.server start
    

    需要注意的是,這個 mysql.server 文件其實是一個鏈接文件,它的實際文件是 support-files/mysql.server,所以如果在 bin 目錄找不到,到 support-files下去找找,而且如果你愿意的話,自行用ln命令在 bin 創建一個鏈接。

    另外,我們還可以使用 mysql.server 命令來關閉正在運行的服務器程序,只要把 start 參數換成 stop 就好了:

    mysql.server stop
    
  • mysqld_multi
    其實我們一臺計算機上也可以運行多個服務器實例,也就是運行多個 MySQL 服務器進程。 mysql_multi 可執行文件可以對每一個服務器進程的啟動或停止進行監控。

客戶端程序

在我們成功啟動 MysTL 服務器程序后,就可以接著啟動客戶端程序來連接到這個服務器嘍, bin 目錄下有許多客戶端程序,比方說mysqladmin 、mysqldump 、mysqlcheck 等等。
我們常會用的是可執行文件mysql,通過這個可執行文件可以讓我們和服務器程序進程交互,也就是發送請求,接受服務器的處理結果。

  • mysqladmin :執行管理操作的工具,檢查服務器配置,當前運行狀態,創建、刪除數據庫,設置新密碼。
  • mysqldump 數據庫邏輯備份程序
  • mysqlbackup 備份數據表、整個數據庫、所有數據庫,一般來說 mysqldump 備份、mysql 還原。

啟動選項和參數

配置參數文件

當MySQL實例啟動時,數據庫會先去讀取一個配置參數文件,用來尋找數據庫的各種文件所在的位置以及指定某些初始化參數,這些參數通常定義了某種內存結構有多大等。默認情況下,MySQL 實例會按照一定的順序在指定的位置進行讀取,用戶只需要命令mysql --help grep my.cnf 來尋找即可。
在這里插入圖片描述

當然,也可以在啟動MySQL時,指定配置文件(非yum安裝):
在這里插入圖片描述
這時候,就會以啟動時指定的配置文件為準。
在這里插入圖片描述
MySQL數據庫參數文件的作用和Oracle數據庫的參數文件極其類似,不同的是,Oracle實例在啟動時若找不到參數文件,是不能進行狀態(mount)操作的。MySQL稍微有些不同,MySQL實例可以不需要參數文件,這時所有的參數值取決于編譯MySQL時指定的默認值和源代碼中指定參數的默認值。

MySQL數據庫的參數文件是以文本方式進行存儲的。可以直接通過一些常用的文本編輯軟件進行參數的修改。

參數查看和修改

可以通過命令show variable查看數據庫中的所有參數,也可以通過 LIKE 來過濾參數名,前面查找數據庫引擎時已經展示過了。從 MySQL5.1 版本開始,還可以通過 information_schema 架構下的 GLOBAL_VARIABLES 視圖來進行查找,推薦使用命令。
show variables,使用更為簡單,且各版本的 MySQL 數據庫都支持。
在這里插入圖片描述
參數的具體含義還可參考MySQL官方手冊

MySQL數據庫中的參數可分為兩類:動態(dynamic)參數和靜態(static)參數。同時從作用范圍又可以分為全局變量和會話變量。

  • 動態參數意味著可以在MySQL實例運行中進行更改,靜態參數說明在整個實例生命周期內都不得進行更改,就好象是只讀(read only)的。
  • 全局變量(GLOBAL)影響服務器的整體操作;會話變量(SESSION/LOCAL)影響某個客戶端連接的操作。

舉個例子,用 default_storage_engine 來說明,在服務器啟動時會初始化一個名為 default_storage_engine ,作用范圍為 GLOBAL 的系統變量。之后每當有一個客戶端連接到該服務器時,服務器都會單獨為該客戶端分配一個名為 default_storage_engine ,作用范圍為 SESSION 的系統變量,該作用范圍為 SESSION 的系統變量值按照當前作用范圍為 GLOBAL 的同名系統變量值進行初始化。

可通過SET命令對動態的參數值進行修改。
在這里插入圖片描述
SET的語法如下

-- set [global || session ] system_var_name= expr
-- 或者
-- set [@@global. || @@session.] system_var_name= expr
-- 比如:
set read_buffer_size=524288;
set session read_buffer_size=524288;
set @@global.read_buffer_size=524288;

MySQL所有動態變量的可修改范圍,可參考MySQL官方手冊的 Dynamic System Variables 相關內容

對于靜態變量,若對其進行修改,會得到類似如下錯誤
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/908804.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/908804.shtml
英文地址,請注明出處:http://en.pswp.cn/news/908804.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux線程與進程關系及底層實現

在操作系統中,線程切換相比進程切換更輕量級的關鍵原因之一是 緩存(Cache)的有效性,尤其是對 CPU 緩存(如 L1/L2/L3)和 TLB(Translation Lookaside Buffer)的影響。以下從緩存角度詳…

【論文閱讀30】Bi-LSTM(2024)

用于精確實時滑坡檢測的雙向LSTM模型:以印度梅加拉亞邦毛永格里姆為例的研究 IEEE Internet of Things Journal(簡稱 IoT?J)是一份 IEEE 自 2014 年起雙月刊發表的國際頂級學術期刊,專注于物聯網各領域的研究。 作者&#xff1a…

Java編程之原型模式

原型模式的定義 原型模式(Prototype Pattern)是一種創建型設計模式,通過復制已有對象來創建新對象,而非通過常規的手段的new關鍵字來實例化。適用于對象創建成本較高或需要動態配置的場景。 例如,在一個游戲開發中&am…

RAG質量評估

當完成了一個RAG系統的開發工作以后,還需要對該系統的性能進行評估。如何對RAG系統的性能進行評估呢?仔細分析RAG系統的產出成果,主要涉及以下幾點: (1)檢索器組件 檢索的相關文檔 context, (…

LLMs基礎學習(八)強化學習專題(1)

LLMs基礎學習(八)強化學習專題(1) 文章目錄 LLMs基礎學習(八)強化學習專題(1)學習資料資源強化學習是什么強化學習一句話精準定義 強化學習與其他學習類型的對比強化學習 vs 監督學習…

19-Oracle 23 ai Database Sharding-知識準備

小伙伴是不是經常遇見大規模集群和數量的時候,業務就提出要對數據進行sharding。 Oracle 和其他數據庫(如 MySQL、PostgreSQL、MongoDB 等) 為什么要進行分片(sharding),分片的原因是什么,實現…

分類與邏輯回歸 - 一個完整的guide

線性回歸和邏輯回歸其實比你想象的更相似 😃 它們都是所謂的參數模型。讓我們先看看什么是參數模型,以及它們與非參數模型的區別。 線性回歸 vs 邏輯回歸 線性回歸:用于回歸問題的線性參數模型。邏輯回歸:用于分類問題的線性參數…

英語寫作中“每一個”each individual、every individual、every single的用法

一、Individual :個體,相對于團體,例如: Individual competition (個人比賽),相對于team competition (團體比賽) Individual users (個人用戶)…

由于 z(x,y) 的變化導致的影響(那部分被分給了鏈式項)

? 本質問題:為什么鏈式法則中 ? F ? x \frac{\partial F}{\partial x} ?x?F? 不考慮 z z ( x , y ) zz(x,y) zz(x,y)? 🔍 一、關鍵是:偏導數的定義是什么? 我們從最根本的定義開始: ? F ( x , y…

python打卡day44@浙大疏錦行

知識點回顧: 預訓練的概念常見的分類預訓練模型圖像預訓練模型的發展史預訓練的策略預訓練代碼實戰:resnet18 作業: 嘗試在cifar10對比如下其他的預訓練模型,觀察差異,盡可能和他人選擇的不同嘗試通過ctrl進入resnet的…

十一(3) 類,加深對拷貝構造函數的理解

class ClassName { public: // 拷貝構造函數:參數是同類型對象的引用(通常為 const 引用) ClassName(const ClassName& other) { // 復制 other 的成員變量到當前對象 } }; 參數要求:必須是同類型對象的引用&#xff0…

網頁后端開發(基礎1--maven)

maven的作用: Maven是一款管理和構建Java項目的工具。 1.依賴管理: 方便快捷的管理項目依賴的資源(jar包) 不用手動下載jar包,只需要中maven中引用,maven會查找本地倉庫。若本地倉庫沒有,會直…

認識電子元器件---高低邊驅動

目錄 一、基本概念 二、關鍵參數對比 三、工作原理 (1)高邊驅動 (2)低邊驅動 四、典型的應用場景 五、如何選擇 一、基本概念 可以理解成:高低邊驅動是MOS/IGBT的一種應用方式 高低邊驅動是電路拓撲概念&#…

JavaScript 標簽加載

目錄 JavaScript 標簽加載script 標簽的 async 和 defer 屬性,分別代表什么,有什么區別1. 普通 script 標簽2. async 屬性3. defer 屬性4. type"module"5. 各種加載方式的對比6. 使用建議 JavaScript 標簽加載 script 標簽的 async 和 defer …

C/CPP 結構體、聯合體、位段內存計算 指南

C/CPP 結構體、聯合體、位段內存計算 指南 在C語言中,結構體、聯合體和位段是對數據的高級抽象,它們可以讓程序員以更易于理解的方式來操作復雜的數據結構。然而,這些結構在內存中的布局可能并不如它們的語法結構那樣直觀,特別是當…

ASR(語音識別)語音/字幕標注 通過via(via_subtitle_annotator)

文章目錄 1 VIA 官網資料2 語音/字幕標注3 鍵盤快捷鍵常規當一個時間片段被選中時圖像或視頻幀中的空間區域 1 VIA 官網資料 VIA官網:https://www.robots.ox.ac.uk/~vgg/software/via/ VIA官網標注示例:https://www.robots.ox.ac.uk/~vgg/software/via/…

mq安裝新版-3.13.7的安裝

一、下載包,上傳到服務器 https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.13.7/rabbitmq-server-generic-unix-3.13.7.tar.xz 二、 erlang直接安裝 rpm -ivh erlang-26.2.4-1.el8.x86_64.rpm不需要配置環境變量,直接就安裝了。 erl…

高通平臺PCIE EP模式log丟失問題

高通平臺PCIE EP模式log丟失問題 1 問題背景2 問題分析2.1 對比USB2.1.1 Logtool優化2.1.2 Device mhi與fs對比2.2 優化方案2.2.1 Diag系統優化2.2.2 Host mhi優化3 最終成果1 問題背景 高通5G模組如SDX55\SDX62\SDX65\SDX72\SDX75等支持pcie ep模式。會通過pcie與host(如MT7…

Python應用輸入輸出函數

大家好!在 Python 編程中,輸入輸出函數是與用戶進行交互的橋梁。通過輸入函數,我們可以獲取用戶的輸入數據;通過輸出函數,我們可以向用戶展示程序的運行結果。對于初學者來說,掌握基本的輸入輸出操作是編程入門的重要一…

如何使用 Ansible 在 Ubuntu 24.04 上安裝和設置 LNMP

在當今世界,自動化是有效管理和部署 Web 應用程序的關鍵。Ansible 是一個強大的自動化工具,它是一款開源軟件配置、配置管理和應用程序部署工具。本文將指導您使用 Ansible 在 Ubuntu 服務器上安裝 LNMP 堆棧(Linux、Nginx、MySQL、PHP)。 先決條件 為了執行本指南中討論的…