你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将现有的 Azure 应用服务连接到 Azure Database for MySQL 服务器

适用于:Azure Database for MySQL - 单一服务器

重要

Azure Database for MySQL 单一服务器处于停用路径。 强烈建议升级到 Azure Database for MySQL 灵活服务器。 有关迁移到 Azure Database for MySQL 灵活服务器的详细信息,请参阅 Azure Database for MySQL 单一服务器发生了什么情况?

本主题将说明如何将现有的 Azure App Service 连接到 Azure Database for MySQL 服务器。

开始之前

登录 Azure 门户。 创建 Azure Database for MySQL 服务器。 有关详细信息,请参阅如何在门户中创建 Azure Database for MySQL 服务器如何使用 CLI 创建 Azure Database for MySQL 服务器

当前有两种解决方案,都允许从 Azure 应用服务访问 Azure Database for MySQL。 这两种解决方案都涉及设置服务器级别的防火墙规则。

解决方案 1 - 允许 Azure 服务

Azure Database for MySQL 通过使用防火墙保护数据来确保访问安全。 从 Azure App Service 连接到 Azure Database for MySQL 服务器时,请记住应用服务的出站 IP 实际上为动态 IP。 选择“允许访问 Azure 服务”选项将允许应用服务连接到 MySQL 服务器。

  1. 在 MySQL 服务器边栏选项卡上的“设置”标题下,单击“连接安全性”,以打开 Azure Database for MySQL 的“连接安全性”边栏选项卡 。

    Azure portal - click Connection Security

  2. 在“允许访问 Azure 服务”中选择“开”,然后选择“保存”。 Azure portal - Allow Azure access

解决方案 2 - 创建显式允许出站 IP 的防火墙规则

可显式添加 Azure 应用服务的所有出站 IP。

  1. 在应用服务的“属性”边栏选项卡中,查看“出站 IP 地址” 。

    Azure portal - View outbound IPs

  2. 在 MySQL 的“连接安全性”边栏选项卡中,逐个添加出站 IP。

    Azure portal - Add explicit IPs

  3. 请记住保存 防火墙规则。

尽管 Azure App Service 会尝试在一段时间内将 IP 地址保持不变,但也有 IP 地址可能发生变动的情况。 例如,当应用回收、出现缩放操作或在 Azure 区域数据中心添加新计算机以增加容量时,IP 地址可能发生变动。 IP 地址变动时,应用若无法再连接到 MySQL 服务器,则可能会停机。 选择上述任何一种解决方案时,请考虑此可能性。

SSL 配置

Azure Database for MySQL 已默认启用 SSL。 如果应用程序不使用 SSL 连接到数据库,则需禁用 MySQL 服务器上的 SSL。 有关如何配置 SSL 的详细信息,请参阅通过 Azure Database for MySQL 使用 SSL

Django (PyMySQL)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'quickstartdb',
        'USER': 'myadmin@mydemoserver',
        'PASSWORD': 'yourpassword',
        'HOST': 'mydemoserver.mysql.database.azure.com',
        'PORT': '3306',
        'OPTIONS': {
            'ssl': {'ssl-ca': '/var/www/html/BaltimoreCyberTrustRoot.crt.pem'}
        }
    }
}

后续步骤

有关连接字符串的详细信息,请参阅连接字符串