Связь между контейнерами Linux (lxc)

У меня есть контейнер для моего веб-сервера Apache и еще один для моего сервера Mysql. Я дал им 2 статических IP-адреса

NAME                   STATE    IPV4        IPV6  AUTOSTART  
-----------------------------------------------------------
apache                 RUNNING  10.0.3.10   -     YES        
mysql                  RUNNING  10.0.3.20   -     YES    

У меня проблема в том, что я не могу получить доступ к серверу Mysql с сервера Apache.

Если я запускаю это на сервере MySQL:

mysql -h 127.0.0.1 -u root -p

У меня нет проблем со входом, но если я запускаю это на веб-сервере:

mysql -h 10.0.3.20 -u root -p

Я получаю это ошибка:

ERROR 2003 (HY000): Can't connect to MySQL server on '10.0.3.20' (111)

Чего мне не хватает?

1
задан 18 June 2014 в 20:54

1 ответ

Проблема не с контейнерами, а с mysql конфигурацией. По умолчанию mysql слушает на localhost только. Необходимо измениться, это к 0.0.0.0 связывает адрес.

, Например, перед изменением Вы видите 127.0.0.1:3306. Это должно быть 0.0.0.0:3306

root@mysql:~# netstat -anp |grep LISTEN
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      418/mysqld   

edit /etc/mysql/my.cnf

, редактируют обязывание адресной строки быть похожими на это:

bind-address            = 0.0.0.0

Тогда перезапуск mysql сервис.

Подключение к mysql в mysql контейнере и создают root@ "весь" пользователь с ниже команды.

ПРЕДОСТАВЛЕНИЕ ВСЕ ПОЛНОМОЧИЯ НА . ДЛЯ 'базирований' '%' С ОПЦИЕЙ ПРЕДОСТАВЛЕНИЯ, ОПРЕДЕЛЕННОЙ 'ПАРОЛЕМ'; полномочия сброса;

Помните: замените ПАРОЛЬ паролем root для root@all, который Вы хотите иметь

3
ответ дан 18 June 2014 в 20:54

Другие вопросы по тегам:

Похожие вопросы: