MySQL 是一種廣泛使用的關系型數(shù)據(jù)庫管理系統(tǒng),它使用客戶端/服務器模式運行。當客戶端與服務器建立連接時,兩者將共同完成一個“握手”過程,以下是 MySQL 握手的詳細過程:
// 客戶端發(fā)送給 MySQL 一個“握手數(shù)據(jù)包” Packet (HHBC): 0000 15 00 00 01 85 a5 07 00 ... // 握手數(shù)據(jù)包內容 // 服務器回應一個“服務器版本數(shù)據(jù)包” Packet (HHBC): 0000 48 00 00 00 0a 35 2e 36 ... // 服務器版本數(shù)據(jù)包內容 // 服務器發(fā)送“身份驗證數(shù)據(jù)包 (1)” Packet (HHBC): 0000 01 00 00 02 fe 7a 0c 00 ... // 身份驗證數(shù)據(jù)包 (1) 內容 // 客戶端回應一個“客戶端身份驗證數(shù)據(jù)包” Packet (HHBC): 0000 3f 00 00 01 85 a5 04 2f ... // 客戶端身份驗證數(shù)據(jù)包內容 // 服務器發(fā)送“身份驗證數(shù)據(jù)包 (2)” Packet (HHBC): 0000 07 00 00 03 6d 79 73 71 ... // 身份驗證數(shù)據(jù)包 (2) 內容 // 服務器發(fā)送“OK 數(shù)據(jù)包” Packet (HHBC): 0000 07 00 00 04 00 00 00 02 ... // OK 數(shù)據(jù)包內容
這個過程中,服務器版本數(shù)據(jù)包包含了 MySQL 服務端的版本號以及一些其他信息。而客戶端身份驗證數(shù)據(jù)包中則包含了使用的加密方式以及用戶名和密碼。
總的來說,MySQL 握手涉及多個通信數(shù)據(jù)包,規(guī)則也比較復雜。如果開發(fā)者對此有疑問,建議參考 MySQL 官方文檔中相關的說明。
上一篇CSS樣式表lvse
下一篇css樣式類選擇器