老大留的作業是:在docker中用mysql容器啓動兩個服務實例:mysql-server,且他們的數據互通,再啓動一個mysql-client。
琢磨了好一陣子啥叫server啥叫client,越琢磨越懵,還不敢問,自己百度/谷歌得一塌糊塗...
只好去問班級裏的大腿,大腿昨晚上給講了一下,現在大概有個概念了...
整理一下寫出來,加深自己的記憶,順便,萬一有人和我有一樣的疑惑不也就明白了呢~是吧~(*^▽^*)
首先附一個鏈接,是講解mysql-client和server的區別的:
然後說一下討論的內容和結論:
我之前疑惑的點是,都說client是要登陸(host -u -p)的,但是我在使用server時,也要登陸(-u -p)啊,所以理所當然地產生了一個想法就是,client與server的區別就是要不要連host,不連host的就是server,但是這個觀點其實不太對。
本質上的區別是:server是執行一個crud操作,client是發送一個crud操作。
server是把sql語句翻譯成對內存和文件的操作,也就是說,server是直接操作文件的。
而client是對數據庫/表進行操作,不是直接對文件進行操作。
舉個例子:
①client:我用一個Navicat去鏈接一個數據庫,這個Navicat就是client。
②server:我有多個mysql服務實例,他們可以位於不同的端口(這句不重要),但是他們是掛載在了宿主機同一個目錄下的(這句重要,對內存/文件進行操作了),而且數據共享(這句也不重要)。
小知識點:
①sql只是去知道server如何去操作數據。
②即使C/S在同一臺機器上,他們也是通過網絡通訊的。
加油ヾ(◍°∇°◍)ノ゙