Mysql四種通信協議(linux下本地連接的都是socket 其他都是tcp)
當連接mysql時,使用-h127.0.0.1時,linux與unix下的連接協議為socket協議,windows下為memory協議。
如: [root@mysql ~]# mysql -uandy -pandy -h127.0.0.1
當連接mysql時,使用非-h127.0.0.1時,使用tcp/ip協議。
如: [root@mysql ~]# mysql -uandy -pandy
以下詳細描述了和MySQL server進行交互所使用各種不同通信協議:
1.TCP/IP協議
> 傳輸控制協議(Transmission Control Protocol)/互聯網協議(Internet Protocol),是一套被用於連接互聯網上各主機的通信協議。TCP/IP一開始是用於UNIX操作系統建立互聯網通信的。現在它已經成為了一種網絡數據傳輸的事實標准。即便那些擁有自己通信協議的網絡操作系統,如Netware也支持TCP/IP協議。
2. Unix Socket協議
> 在計算機世界,一個socket是一種內部進程通信形式,它被用於在相同主機上形成進程間的雙向通信連接點(在本地系統上的一個物理文件)。
3. Share Memory協議
> 一個在程序間傳送數據的有效方法。一個程序會建立一個內存區以提供其它受允許的進程進行訪問。Windows顯式”passive”連接模式僅可工作於(Windows系統)主機中。
4. NT管道
>這種命名管道設計更偏向於客戶端-服務器通信,它們更像socket:除了用於通常的讀寫操作外,Windows命名管道也同時對server應用支持顯式”passive”被動連接模式。僅在單獨(Windows平台)主機中運行。