Microsoft Azure - не удается получить доступ к MySQL Instance, запущенному в Docker, из-за пределов виртуальной машины - PullRequest
0 голосов
/ 16 сентября 2018

Я создал виртуальную машину (Ubuntu Server 18.04) в облаке Microsoft Azure, на которой я установил Docker, и я запускаю контейнер MySQL 5.7.

Проблема заключается в том, что я пытаюсь подключиться к экземпляру MySQL извневиртуальная машина (например, MySQL Workbench, которая установлена ​​непосредственно на моем компьютере), я получаю сообщение об ошибке:

Your connection attempt failed for user 'root' from your host to server at my_ip_address:3306: Can't connect to MySQL server on 'my_ip_address' (60)

Я подозреваю, что моя виртуальная машина не разрешает внешний IP-доступ, но я не могу понять,как разрешить использование некоторых IP-адресов Azure

Ответы [ 3 ]

0 голосов
/ 16 сентября 2018

Если вы создали ВМ со значениями по умолчанию. Вы можете проверить правила брандмауэра в разделе «Сеть». Там вы должны увидеть разрешенный трафик для входящего и исходящего трафика. По умолчанию виртуальным машинам на Azure назначается NSG (группа сетевой безопасности), если вы не измените это свойство при создании или не измените его после создания.

Как только вы проверили, что NSG имеет правильные настройки. Я предполагаю, что порт по умолчанию для MySQL - это TCP 3306. Если правила нет, добавьте его.

После этого вы должны проверить брандмауэр Ubuntu. Я думаю, что по умолчанию вверх.

Попробуйте это:

sudo ufw status

, а затем это:

sudo ufw disable

Он отключит брандмауэр, проверьте, можете ли вы подключиться к экземпляру MySQL. Если вы успешно подключились к нему, включите Ubuntu Firewall с помощью:

sudo ufw enable

И добавьте правило брандмауэра, чтобы разрешить входящий трафик на порт TCP 3306 в ОС:

sudo ufw allow from any to any port 3306 proto tcp

Перезапустите брандмауэр и проверьте, активно ли новое правило:

sudo ufw status

Надеюсь, это поможет.

С уважением,

0 голосов
/ 17 сентября 2018

Создайте контейнер с запущенным MySQL на нем на виртуальной машине Azure Ubuntu 18.04.Вы можете следовать инструкциям ниже.И, наконец, вы подключитесь к нему.

Первый.

Создайте контейнер с запущенным MySQL и командой здесь:

docker run --name=mysql -d -p 3306:3306 mysql/mysql-server:latest

Когда закончите, вы можете использовать команду, чтобы увидеть пароль пользователя root:

docker logs mysql

Результат будет таким: enter image description here

Тогдаиспользуйте команду для подключения mysql:

docker exec -it mysql mysql -uroot -p

и измените пароль:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';

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

Второй.

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

Третий.

Создайте правило, разрешающее трафик порта 3306 на портале Azure.

enter image description here

Он работает на моем сайте и надеется, что это поможет вам.

Обновление

Здесь вы можете добавить правила группы сетевой безопасности, как показано на скриншоте.:

enter image description here

0 голосов
/ 16 сентября 2018

Рекомендуйте использовать функцию SSH туннель Workbench, тогда вам не нужно делать доступ к базе данных удаленно.

...