將現有的 Azure App Service 連線到適用於 MySQL 伺服器的 Azure 資料庫

適用於: 適用於 MySQL 的 Azure 資料庫 - 單一伺服器

重要

適用於 MySQL 的 Azure 資料庫單一伺服器位於淘汰路徑上。 強烈建議您升級至適用於 MySQL 的 Azure 資料庫彈性伺服器。 如需移轉至適用於 MySQL 的 Azure 資料庫彈性伺服器的詳細資訊,請參閱適用於 MySQL 的 Azure 資料庫 - 單一伺服器會發生什麼事?

本主題說明如何將現有的 Azure App Service 連線到適用於 MySQL 伺服器的 Azure 資料庫。

開始之前

登入 Azure 入口網站。 建立適用於 MySQL 伺服器的 Azure 資料庫。 如需詳細資訊,請參閱如何從入口網站建立適用於 MySQL 伺服器的 Azure 資料庫如何使用 CLI 建立適用於 MySQL 伺服器的 Azure 資料庫

目前有兩種解決方案可讓您從 Azure App Service 存取適用於 MySQL 的 Azure 資料庫。 這兩種解決方案都需要設定伺服器層級防火牆規則。

解決方案 1 - 允許 Azure 服務

適用於 MySQL 的 Azure 資料庫提供存取安全性,使用防火牆來保護您的資料。 Azure App Service 連線到適用於 MySQL 伺服器的 Azure 資料庫時,請注意 App Service 的輸出 IP 本質上是動態的。 選擇 [允許存取 Azure 服務] 選項,可讓 App Service 連線至 MySQL 伺服器。

  1. 在 [MySQL 伺服器] 刀鋒視窗的 [設定] 標題下,按一下 [連線安全性],開啟「適用於 MySQL 的 Azure 資料庫」的 [連線安全性] 刀鋒視窗。

    Azure portal - click Connection Security

  2. 選取 [允許存取 Azure 服務] 中的 [開啟],然後選取 [儲存]Azure portal - Allow Azure access

解決方案 2 - 建立防火牆規則以明確允許輸出 IP

您可以明確新增 Azure App Service 的所有輸出 IP。

  1. 在 App Service 的 [屬性] 刀鋒視窗上,檢視您的 [輸出 IP 位址]

    Azure portal - View outbound IPs

  2. 在 MySQL 的 [連線安全性] 刀鋒視窗上,逐一新增輸出 IP。

    Azure portal - Add explicit IPs

  3. 記得儲存您的防火牆規則。

雖然 Azure App Service 會嘗試將 IP 位址保持固定一段時間,IP 位址有時還是可能會變更。 例如,此狀控可能發生應用程式回收或調整規模作業時,或在 Azure 地區資料中心內新增電腦以增加容量時。 當 IP 位址變更時,應用程式可能會在無法再連線到 MySQL 伺服器時發生停機。 選擇上述其中一種解決方案時,請考慮這個可能性。

SSL 組態

適用於 MySQL 的 Azure 資料庫預設會啟用 SSL。 如果您的應用程式未使用 SSL 連線到資料庫,則必須在 MySQL 伺服器上停用 SSL。 如需如何設定 SSL 的詳細資訊,請參閱使用 SSL 與適用於 MySQL 的 Azure 資料庫

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'}
        }
    }
}

下一步

如需連接字串的詳細資訊,請參閱連接字串