提一個問題,如何在docker中用mysql容器啟動兩個服務實例:mysql-server,且他們的數據互通,再啟動一個mysql-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在同一臺機器上,他們也是通過網絡通訊的。
更多Mysql相關問題請訪問PHP中文網:https://stackoverflow.com/questions/6962890/what-is-the-difference-between-mysql-server-and-mysql-client