詳解MySQL客戶端/服務(wù)器運(yùn)行架構(gòu)
前言
之前對(duì)MySQL的認(rèn)知只限于會(huì)寫些SQL,本篇開始進(jìn)行對(duì)MySQL進(jìn)行深入的學(xué)習(xí),記錄和整理下自己對(duì)MySQL不熟悉的地方。如果有需要可以關(guān)注我的專欄一起學(xué)習(xí),共同進(jìn)步!關(guān)于mysql的安裝就不說了,直接從mysql的客戶端/服務(wù)器運(yùn)行架構(gòu)開始學(xué)習(xí)。Let′s go~
MySQL客戶端/服務(wù)器架構(gòu)
MySQL其實(shí)跟我們平時(shí)使用的程序一樣,是由兩部分組成的,一部分是客戶端程序,一部分是服務(wù)器程序。
- MySQL服務(wù)器程序直接和我們存儲(chǔ)的數(shù)據(jù)打交道,客戶端啊連接服務(wù)器,發(fā)送增刪改查的請(qǐng)求,服務(wù)器操作維護(hù)的數(shù)據(jù)響應(yīng)請(qǐng)求。MySQL服務(wù)器程序的進(jìn)程也被稱為MySQL數(shù)據(jù)庫實(shí)例。
- MySQL客戶端都需要用戶名和密碼才能登錄,登錄之后才能給服務(wù)器發(fā)送請(qǐng)求來操作某些數(shù)據(jù)。
我們?nèi)粘J褂肕ySQL的情景一般是這樣的
- 啟動(dòng)MySQL服務(wù)器程序。
- 啟動(dòng)MySQL客戶端程序并連接到服務(wù)器程序。
- 在客戶端程序中輸入一些sql命令語句作為請(qǐng)求發(fā)送到服務(wù)器程序,服務(wù)器程序收到這些請(qǐng)求后,會(huì)根據(jù)請(qǐng)求的內(nèi)容來操作具體的數(shù)據(jù)并向客戶端返回操作結(jié)果。
MySQL客戶端連接服務(wù)器
在成功啟動(dòng)MySQL服務(wù)器程序后,就可以啟動(dòng)客戶端程序來連接到這個(gè)服務(wù)器了。我們可以通過mysql可執(zhí)行文件與服務(wù)器程序交互,進(jìn)行發(fā)送請(qǐng)求并接收服務(wù)器的處理結(jié)果。啟動(dòng)格式如下:
mysql -h主機(jī)名 -u用戶名 -p密碼
示例:
mysql -hlocalhost -uroot -p123456
出現(xiàn)如下界面就表示連接成功了。
注意事項(xiàng):最好不要在一行命令中輸入密碼,我們直接輸入的是明文可能會(huì)被同一臺(tái)機(jī)器上的其他用戶看到,我們可以通過如下命令分為兩步進(jìn)行操作
mysql -hlocalhost -uroot -p
按回車之后才會(huì)提示輸入密碼。
客戶端與服務(wù)器連接的過程
運(yùn)行著的服務(wù)器程序和客戶端程序本質(zhì)上都是計(jì)算機(jī)上的一個(gè)進(jìn)程,所以客戶端進(jìn)程向服務(wù)器進(jìn)程發(fā)送請(qǐng)求并得到響應(yīng)的過程本質(zhì)上是一個(gè)進(jìn)程間通信的過程。MySQL支持三種客戶端進(jìn)程和服務(wù)器進(jìn)程的通信方式:
TCP/IP
真實(shí)環(huán)境中,數(shù)據(jù)庫服務(wù)器進(jìn)程和客戶端進(jìn)程可能運(yùn)行在不同的主機(jī)中,它們之間必須通過網(wǎng)絡(luò)來進(jìn)行通信。MySQL采用TCP作為服務(wù)器和客戶端之間的網(wǎng)絡(luò)通信協(xié)議。我們可以通過IP地址 + 端口號(hào)的方式來與這個(gè)進(jìn)程連接,命令行中添加-P(大寫P)參數(shù)來指定端口號(hào),格式如下:
mysql -hlocalhost -P3306 -uroot -p123456
MySQL服務(wù)器默認(rèn)監(jiān)聽3306端口;
命名管道和共享內(nèi)存
這種通信方式是windows操作系統(tǒng)中的兩種進(jìn)程間通信方式;如果沒聽說或可以忽略,不重要。
Unix域套接字文件
這種方式要求客戶端和服務(wù)器運(yùn)行在同一臺(tái)類Unix的操作系統(tǒng)上;
小結(jié)
MySQL采用客戶端/服務(wù)器架構(gòu),用戶通過客戶端程序發(fā)送增刪改查需求,服務(wù)器程序收到請(qǐng)求后處理,并且把處理結(jié)果返回給客戶端。
MySQL客戶端可以通過TCP/IP、命名管道和共享內(nèi)存、Unix域套接字文件三種方式進(jìn)行連接MySQL服務(wù)器,主要掌握TCP/IP的方式就可以。
到此這篇關(guān)于詳解MySQL客戶端/服務(wù)器運(yùn)行架構(gòu)的文章就介紹到這了,更多相關(guān)MySQL客戶端內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
新裝MySql后登錄出現(xiàn)root帳號(hào)提示mysql ERROR 1045 (28000): Access denied
這篇文章主要介紹了新裝MySql后登錄出現(xiàn)root帳號(hào)提示mysql ERROR 1045 (28000): Access denied for use的解決辦法,需要的朋友可以參考下2017-01-01Windows10下mysql 8.0.16 安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了Windows10下mysql 8.0.16 安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05詳解MySQL InnoDB存儲(chǔ)引擎的內(nèi)存管理
這篇文章主要介紹了詳解MySQL InnoDB存儲(chǔ)引擎的內(nèi)存管理,幫助大家更好的理解和學(xué)習(xí)使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下2021-04-04深入理解mysql SET NAMES和mysql(i)_set_charset的區(qū)別
最近公司組織了個(gè)PHP安全編程的培訓(xùn), 其中涉及到一部分關(guān)于Mysql的 SET NAMES 和mysql_set_charset (mysqli_set_charset)的內(nèi)容2012-01-01