我在一个 pod 中运行两个容器:一个基于debian:wheezy
,另一个是mysql:5.6
。
当我登录到第二个容器时,我可以mysql
毫无问题地调用 MySQL 客户端。
当我登录到第一个容器并调用 MySQL 客户端mysql
(之后apt-get install -y mysql-client
)时,收到此错误消息:
ERROR 2002 (HY000):
Can't connect to local MySQL server through socket
'/var/run/mysqld/mysqld.sock' (2)
我认为这是因为这两个容器使用它们自己的文件系统,并且套接字仅存在于第二个容器中。
有没有一种简单的方法可以让 MySQL 客户端在第一个容器中工作,而 MySQL 服务器在第二个容器中运行并且仍然使用套接字?
答案1
解决方案包括调用第二个容器中的 MySQL 客户端,如下所示:
mysql -host 127.0.0.1
这会力量客户端建立 TCP/IP 连接,而不是使用 Unix 套接字文件。(localhost
在这种情况下不会这样做。)