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

Что блокирует мое соединение mysql?

Мы запускаем несколько образов докеров на виртуальной машине.

sudo iptables -S показывает много сетей докеров.

Мы пытаемся подключиться к внешней базе данных MySQL в другой сети.

mysql --host=mysql.example.org --user=thisuser thatdatabase

Получаем сообщение об ошибке:

ОШИБКА 2002 (HY000): не удается подключиться к серверу MySQL на mysql.example.org (115)

Сетевые журналы показывают, что внешний брандмауэр не распознает попытку подключения.

Мы попытались закрыть докер и повторить попытку, но безуспешно.

sudo traceroute mysql.example.org
traceroute to mysql.example.org (111.222.333.444), 30 hops max, 60 byte packets
1  localvm.example.org (172.17.0.1)  3071.799 ms !H  3071.763 ms !H  3071.754 ms !H

В 172.17.0.1 -не- IP-адрес локальной системы.

В другой ванильной системе мы можем подключиться к этому экземпляру.

Мы безуспешно пытались использовать явный маршрут.

ip route add 222.333.444.0/24 dev ens192

traceroute mysql.example.org
traceroute to mysql.example.org (correct external ip-address), 30 hops max, 60 byte packets
1  localvm.example.org (correct local ip-address)  3068.673 ms !H  3068.566 ms !H  3068.532 ms !H

Есть предложения, как сузить количество ошибок?

Пришло время запустить wirehark?

Виртуальная машина - Debian 10, клиент - mysql Ver 15.1 Distrib 10.3.22-MariaDB

обычно означает, что в системе нет запущенного сервера MySQL или что вы используете неправильное имя файла сокета Unix или номер порта TCP / IP при попытке подключения к серверу. Вы также должны убедиться, что порт TCP / IP, который вы используете, не заблокирован брандмауэром или службой блокировки портов.

Оказалось, что нам пришлось запретить докеру использовать сеть 172.17.0.0/24.

В соответствии с как-сделать-я-настроить-по умолчанию-мост-докер0

мы изменили

/etc/docker/daemon.json
{
  "bip": "172.26.0.1/16"
}

systemctl restart docker;systemctl status docker

Старая запись маршрута была

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         ....            0.0.0.0         UG    100    0        0 ens192
...........     0.0.0.0         255.255.255.0   U     100    0        0 ens192
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0

маршрут теперь показывает другую сеть:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.26.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0

Теперь он не конфликтует с существующим сервером и подключение возможно.

Большое спасибо всем за помощь!