Назад | Перейти на главную страницу

Подключиться от клиента MySQL в одном контейнере к серверу MySQL в другом контейнере того же модуля

Я запускаю два контейнера в модуле: один основан на debian:wheezy, другой mysql:5.6.

Когда я вхожу во второй контейнер, я могу вызвать клиент MySQL mysql без проблем.

Когда я вхожу в 1-й контейнер и вызываю клиент 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 работать в 1-м контейнере, в то время как сервер MySQL работает во 2-м и все еще использует сокеты?

Решение состоит в вызове клиента MySQL во втором контейнере следующим образом:

mysql -host 127.0.0.1

Это будет сила клиент, чтобы установить соединение TCP / IP вместо использования файла сокета Unix. (localhost в этом случае не годится.)