從主機連接到Docker 容器中的MySQL
問題描述:
何時嘗試從主機連線到在Docker 容器中執行的MySQL資料庫時,遇到錯誤訊息:「Can't透過套接字'/var/run/mysqld/mysqld.sock'連接到本機MySQL伺服器。
Doc kerfile:
以下Dockerfile用來建立MySQL容器:
FROM ubuntu:14.04.3 RUN apt-get update && apt-get install -y mysql-server RUN grep -v bind-address /etc/mysql/my.cnf > temp.txt && mv temp.txt /etc/mysql/my.cnf EXPOSE 3306 CMD /etc/init.d/mysql start && tail -F /var/log/mysql.log
失敗嘗試:
儘管在容器內成功啟動了MySQL 實例,但使用mysql -P 12345 -uroot 從主機連接到它會導致套接字錯誤。 Docker 容器中運行的MySQL資料庫,請執行下列操作必要步驟:
將主機位址指定為「localhost」。
指定Docker MySQL 執行個體正在偵聽的連接埠(預設為3306)。 >將協定設為“tcp”,因為Docker MySQL 實例無法通過Unix 訪問socket.
如果不同連接埠用於暴露Docker容器中的MySQL實例(例如12345),則應該指定也在連線命令中:
mysql -h localhost -P 3306 --protocol=tcp -u root
以上是如何從主機連線到 Docker 化的 MySQL 實例?的詳細內容。更多資訊請關注PHP中文網其他相關文章!