首页 > 解决方案 > Microsoft Azure - 无法从 VM 外部访问在 Docker 上运行的 MySQL 实例

问题描述

我在安装了 Docker 的 Microsoft Azure Cloud 上创建了一个 VM(Ubuntu Server 18.04),并且正在运行一个 MySQL 5.7 容器。

问题是当我尝试从 VM 外部连接到 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)

我怀疑我的 VM 不允许外部 IP 访问,但我不知道如何使用 Azure 允许某些 IP

标签: mysqlazuredockeripvirtual-machine

解决方案


在 Ubuntu 18.04 的 Azure VM 上创建一个运行 MySQL 的容器。您可以按照以下步骤操作。最后,您将连接到它。

第一的。

创建容器并在其中运行 MySQL 和此处的命令:

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

完成后,您可以使用命令查看root用户的密码:

docker logs mysql

结果将是这样的: 在此处输入图像描述

然后使用命令连接mysql:

docker exec -it mysql mysql -uroot -p

并更改密码:

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

现在您可以退出并使用带有新密码的 root 用户来连接 mysql。

第二。

创建一个用户来远程连接 MySQL,你可以按照我回答的另一个案例。

第三。

创建规则以允许 Azure 门户上端口 3306 的流量。

在此处输入图像描述

它适用于我的网站,希望对您有所帮助。

更新

您可以在此处添加网络安全组规则,如屏幕截图所示:

在此处输入图像描述


推荐阅读