在 Azure Stack Hub 上部署 MySQL 資源提供者

重要

Azure Stack Hub 的 SQL 與 MySQL 資源提供者已不再支援,無法提供新客戶的入門服務。 相反地,直接在虛擬機上部署 SQL 或 MySQL,並透過標準工具與實務來管理。 現有的資源提供者部署持續受到支援,但沒有計畫開發新功能或導入。

使用 MySQL Server 資源提供者,將 MySQL 資料庫公開為 Azure Stack Hub 服務。

MySQL 資源提供者會在 Windows Server 2016 Server Core 虛擬機上以服務的形式執行。

MySQL 資源提供者會在特殊的附加元件 Windows Server 上以服務的形式執行。

只有資源提供者應該在裝載 SQL 或 MySQL 的伺服器上建立專案。 在主機伺服器上建立但非資源提供者建立的項目不被支援,可能導致狀態不匹配。

先決條件

如果你已經安裝了資源供應商,你很可能已經完成以下先決條件,可以跳過這部分。 否則,請先完成這些步驟再繼續。

  1. 如果您尚未這麼做,向 Azure註冊您的 Azure Stack Hub 實例。 你需要在 Azure 註冊你的 Azure Stack Hub 實例,因為你會連接到 Azure,並從市集下載物品。

  2. 如果您不熟悉 Azure Stack Hub 系統管理員入口網站的 Marketplace 管理 功能,請檢閱 從 Azure 下載市集項目並發佈至 Azure Stack Hub。 本文將引導您完成從 Azure 下載項目至 Azure Stack Hub 市集的過程。 涵蓋連線和未連線的場景。 如果你的 Azure Stack Hub 實例斷線或部分連線,你需要完成額外的前置條件來準備安裝。

  3. 更新您的 Microsoft Entra 主目錄。 從 build 1910 開始,你必須在你的家庭目錄租戶中註冊一個新的應用程式。 此應用程式可讓 Azure Stack Hub 成功建立較新版本的資源提供者(例如 Azure 事件中樞),並將其註冊到您的 Microsoft Entra 租用戶。

    升級至組建版本 1910 或更新版本後,必須執行此操作。 若未完成此步驟,市場上資源供應商的安裝將失敗。

  4. 成功將Azure Stack Hub實例更新至 1910 或更新版本後,請依照 指示複製/下載 Azure Stack Hub 工具倉庫

  5. 請依照更新 Azure Stack Hub Microsoft Entra 主目錄的指示(安裝更新或新增資源提供者後)

MySQL Server 資源提供者必要條件

  • 你需要一台能夠存取以下功能的電腦和帳號:

    • Azure Stack Hub 系統管理員入口網站
    • 特殊許可權端點(只有在您部署 MySQL Server 資源提供者 V1 或從 MySQL Server 資源提供者 V1 升級至 MySQL Server 資源提供者 V2 時才需要)。
    • Azure Resource Manager 系統管理端點 https://adminmanagement.region.<fqdn>,其中 <fqdn> 是您的完整域名。
    • 如果您的 Azure Stack Hub 已部署為使用 Microsoft Entra ID 作為身份提供者,則需要連接到互聯網。
  • 請依據下一節的版本映射表下載支援的 MySQL 資源提供者二進位檔版本。 針對 V2 MySQL 資源提供者,將市集專案下載至 Azure Stack Hub

    支援的 Azure Stack Hub 版本 MySQL RP 版本 執行 RP 服務的 Windows Server
    2206, 2301, 2306, 2311 MySQL RP 2.0.13.x 版 Microsoft AzureStack 擴充套件 RP Windows Server 1.2009.0
    2108, 2206 MySQL RP 2.0.6.x 版 Microsoft AzureStack 擴充套件 RP Windows Server 1.2009.0
  • 請確定必要的 Windows Server VM 已下載至 Azure Stack Hub Marketplace。 如果需要,請依照版本對應表手動下載圖片。

  • 確保資料中心整合的先決條件已達成:

    先決條件 參考
    已正確設定條件式 DNS 轉送。 Azure Stack Hub 數據中心整合 - DNS
    資源提供者的輸入埠已開啟。 Azure Stack Hub 數據中心整合 - 發佈端點
    PKI 憑證主體和SAN已正確設定。 Azure Stack Hub 部署必要 PKI 必要條件Azure Stack Hub 部署 PaaS 憑證必要條件
  • 準備憑證。 (僅適用於整合系統安裝。)

中斷連線場景

在中斷聯機的情況下部署 MySQL Server 資源提供者 V2 時,請遵循 將市集專案下載至 Azure Stack Hub 指示,將 MySQL Server 資源提供者專案和附加元件 RP Windows Server 專案下載至 Azure Stack Hub 環境。

在中斷連線的情況下部署 MySQL Server 資源提供者 V1 時,請完成下列步驟以下載所需的 PowerShell 模組,並手動註冊存放庫。

  1. 使用因特網連線登入計算機,並使用下列腳本下載PowerShell模組。

    Import-Module -Name PowerShellGet -ErrorAction Stop
    Import-Module -Name PackageManagement -ErrorAction Stop
    
    # path to save the packages, c:\temp\azs1.6.0 as an example here
    $Path = "c:\temp\azs1.6.0"
    
  2. 根據您要部署的資源提供者版本,執行其中一個腳本。

    # for resource provider version >= 1.1.93.0
    Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureRM -Path $Path -Force -RequiredVersion 2.5.0
    Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $Path -Force -RequiredVersion 1.8.2
    
    # for resource provider version <= 1.1.47.0
    Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureRM -Path $Path -Force -RequiredVersion 2.3.0
    Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $Path -Force -RequiredVersion 1.6.0
    
  3. 然後將下載的套件複製到 USB 裝置。

  4. 登入已中斷連線的工作站,並將套件從USB裝置複製到工作站上的位置。

  5. 將此位置註冊為本機存放庫。

    # requires -Version 5
    # requires -RunAsAdministrator
    # requires -Module PowerShellGet
    # requires -Module PackageManagement
    
    $SourceLocation = "C:\temp\azs1.6.0"
    $RepoName = "azs1.6.0"
    
    Register-PSRepository -Name $RepoName -SourceLocation $SourceLocation -InstallationPolicy Trusted
    
    New-Item -Path $env:ProgramFiles -name "SqlMySqlPsh" -ItemType "Directory" 
    

部署 MySQL 資源提供者 V2

如果您要從 V1 版本升級,請參閱檔案 更新 MySQL Server 資源提供者

開始安裝

  1. 如果你還沒登入Azure Stack Hub管理員入口,選擇左側的 Marketplace Management,然後選擇 Resource providers

  2. 下載了 MySQL 資源提供者及其他必要軟體後, 市集管理 會顯示「MySQL Server 資源提供者」套件,狀態為「未安裝」。 你可能會看到其他套件顯示「下載中」狀態。

    安裝 RP 之前市集管理的螢幕快照。

  3. 選擇你想安裝的那一列。 MySQL Server 資源提供者安裝套件頁面會顯示頂端的藍色橫幅。 選取橫幅以開始安裝。 市集管理開始安裝 RP 的螢幕截圖。

安裝必要條件

  1. 接著,你會被切換到安裝頁面。 選取 [安裝必要條件] 開始安裝程序。 市集管理安裝必要條件的螢幕快照。

  2. 請等候直到安裝必要條件成功為止。 您應該在安裝必要條件旁看見綠色的勾選標記,然後再繼續進行下一個步驟。 市集管理平台安裝必要條件成功的螢幕截圖。

準備機密

  1. 2. 準備祕密 步驟中,選取 新增憑證。 新增 憑證 面板會出現。 市場管理機密準備的截圖。

  2. 選取 [新增憑證] 上的瀏覽按鈕,該按鈕位於 [憑證檔名] 字段的右邊。 選取您在完成必要條件時購買的 .pfx 憑證檔案。

  3. 輸入您為 SQL Server 資源提供者 SSL 憑證建立安全字串所提供的密碼。 然後選取 新增市集管理新增憑證的螢幕快照。

設定和安裝資源提供者

  1. 當憑證安裝成功時,你會看到「 準備秘密」旁邊有綠色勾選。 現在,選取 [設定 + 安裝] 按鈕,該按鈕位於[3 安裝資源提供者]旁邊。 市集管理啟動 RP 安裝的螢幕快照。

  2. 接著,為 MySQL Connector 提供 Azure Stack Hub Blob URI。

    • 請檢閱 MySQL Connector 的 GPL 授權, 並將 8.0.21 版下載到本機資料夾。

    • 使用預設作員訂用帳戶建立記憶體帳戶,並使用存取層級 “Blob” 或 “Container” 建立容器。 建立記憶體帳戶的螢幕快照。 建立記憶體容器的螢幕快照。

    • 將本機資料夾中的 mysql-connector-net-8.0.21.msi 檔案上傳到新建立的儲存容器。 將 MySQL 連接器上傳至容器的螢幕快照。

    重要

    請確定 MySQL 連接器的版本是 8.0.21。

    • 複製 Blob URI。 複製 MySQL 連接器 URI 的螢幕快照。

    • 返回 MySQL RP 組態頁面。 將 blob 的 URI(例如 https://<storageAccountName>.blob.<region>.<FQDN>/<containerName>/mysql-connector-net-8.0.21.msi)貼到文字框,然後選擇 確定提供 MySQL 連接器 URI 的螢幕快照。

  3. 接著你會看到下一頁,顯示 MySQL 資源提供者正在安裝中。 市集管理中的 RP 安裝螢幕截圖。

  4. 等候安裝完成通知。 此過程通常需要一個或多個小時,具體時間取決於您使用的 Azure Stack Hub 類型。 市集管理 RP 安裝進行中的螢幕快照。

  5. 請返回 Marketplace 管理資源提供者 頁面,確認 MySQL Server 資源提供者的安裝是否成功。 MySQL Server 資源提供者的狀態應該會顯示「已安裝」。 已安裝市集管理 RP 的螢幕快照。

部署 SQL 資源提供者 V1

完成所有前置條件後,執行自我解壓器將下載的安裝套件解壓到暫存目錄。 從可存取 Azure Stack Hub Azure Resource Manager 管理員端點和特殊許可權端點的電腦執行 DeployMySqlProvider.ps1 腳本,以部署 MySQL 資源提供者。 DeployMySqlProvider.ps1 腳本是你為 Azure Stack Hub 版本下載的 MySQL 資源提供者安裝檔案的一部分而解壓出來的。

重要

在部署資源提供者之前,請先檢閱版本資訊,以瞭解可能會影響部署的新功能、修正程式和任何已知問題。

若要部署 MySQL 資源提供者,請開啟 提升許可權的 PowerShell 視窗(而非 PowerShell ISE),然後變更為您解壓縮 MySQL 資源提供者二進位檔所在的目錄。

重要

使用 Clear-AzureRmContext -Scope CurrentUserClear-AzureRmContext -Scope Process 在執行部署或更新腳本前清除快取。

注意

如果您要在中斷連線的環境中部署 MySQL Server 資源提供者 V1,請將 mysql-connector-net-6.10.5.msi 檔案複製到本機路徑。 透過使用 DependencyFilesLocalPath 參數提供路徑名稱。

執行 DeployMySqlProvider.ps1 文稿,以完成下列工作:

  • 將憑證和其他資產上傳至 Azure Stack Hub 上的儲存帳戶。
  • 發布圖庫套件,讓你能透過圖庫部署 MySQL 資料庫。
  • 發佈畫廊套件以部署主機伺服器。
  • 透過使用 Windows Server 2016 核心映像檔或你下載的 Microsoft AzureStack Add-on RP Windows Server 映像來部署虛擬機,然後安裝 MySQL 資源提供者。
  • 註冊對應至資源提供者 VM 的本機 DNS 記錄。
  • 將您的資源提供者註冊到操作員帳戶的本機 Azure Resource Manager。

注意

當 MySQL 資源提供者部署啟動時,會建立 system.local.mysqladapter 資源群組。 完成此資源群所需的部署可能需要長達75分鐘。 不要把其他資源放進 system.local.mysqladapter 資源群組。

DeployMySqlProvider.ps1 參數

請從命令列指定這些參數。 如果你沒指定,或是任何參數驗證失敗,腳本就會提示你輸入所需的參數。

參數名稱 描述 批註或預設值
CloudAdminCredential 為了存取特權端點,雲端系統管理員需要的認證。 必要
AzCredential Azure Stack Hub 服務管理員帳戶的認證。 使用您用來部署 Azure Stack Hub 的相同認證。 如果你用 AzCredential 使用的帳號需要多重驗證(MFA),腳本就會失敗。 必要
VM本地憑證 MySQL 資源提供者 VM 之本機系統管理員帳戶的認證。 必要
特權端點 具特殊許可權端點的IP位址或 DNS 名稱。 必要
微軟Azure環境 用來部署 Azure Stack Hub 之服務管理員帳戶的 Azure 環境。 僅適用於 Microsoft Entra 部署。 支援的環境名稱 AzureCloudAzureUSGovernment,或使用 China Microsoft Entra ID,AzureChinaCloud AzureCloud
DependencyFilesLocalPath 僅針對整合系統,請將你的憑證 .pfx 檔案放入此目錄。 若為已中斷連線的環境,請下載 mysql-connector-net-6.10.5.msi 至此目錄。 您可以選擇在這裡複製一個 Windows Update MSU 套件。 選擇性(對整合式系統或離線環境而言為必要
預設SSL憑證密碼 .pfx 憑證的密碼。 必要
MaxRetryCount 當發生故障時,您希望每個操作重試的次數是多少。 2
重試時間 重試之間的逾時間隔,以秒為單位。 120
卸載 拿掉資源提供者和所有相關聯的資源(請參閱下列附注)。
偵錯模式 防止在失敗時自動進行清除。
接受許可證 略過提示以接受 GPL 授權。 https://www.gnu.org/licenses/old-licenses/gpl-2.0.html

使用自訂腳本部署 MySQL 資源提供者

如果你部署的是 MySQL 資源提供者版本 1.1.33.0 或更早版本,你需要在 PowerShell 中安裝特定版本的 AzureRm.BootStrapper 和 Azure Stack Hub 模組。

如果您部署的是 1.1.47.0 或更新版本的 MySQL 資源提供者,部署指令碼會自動為您下載並安裝必要的 PowerShell 模組到路徑 C:\Program Files\SqlMySqlPsh

# Install the AzureRM.Bootstrapper module, set the profile and install the AzureStack module
# Note that this might not be the most currently available version of Azure Stack Hub PowerShell
Install-Module -Name AzureRm.BootStrapper -Force
Use-AzureRmProfile -Profile 2018-03-01-hybrid -Force
Install-Module -Name AzureStack -RequiredVersion 1.6.0

注意

在中斷連線的案例中,您必須下載必要的 PowerShell 模組,並手動註冊存放庫作為必要條件。

為了避免部署資源提供者時的手動設定,請自訂以下腳本。 視需要變更 Azure Stack Hub 部署的預設帳戶資訊和密碼。

# Use the NetBIOS name for the Azure Stack Hub domain. On the Azure Stack Hub SDK, the default is AzureStack but could have been changed at install time.
$domain = "AzureStack"  

# For integrated systems, use the IP address of one of the ERCS VMs.
$privilegedEndpoint = "AzS-ERCS01"

# Provide the Azure environment used for deploying Azure Stack Hub. Required only for Azure AD deployments. Supported environment names are AzureCloud, AzureUSGovernment, or AzureChinaCloud. 
$AzureEnvironment = "<EnvironmentName>"

# Point to the directory where the resource provider installation files were extracted.
$tempDir = 'C:\TEMP\MYSQLRP'

# The service admin account (can be Azure Active Directory or Active Directory Federation Services).
$serviceAdmin = "admin@mydomain.onmicrosoft.com"
$AdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force
$AdminCreds = New-Object System.Management.Automation.PSCredential ($serviceAdmin, $AdminPass)

# Set the credentials for the new resource provider VM local admin account
$vmLocalAdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force
$vmLocalAdminCreds = New-Object System.Management.Automation.PSCredential ("mysqlrpadmin", $vmLocalAdminPass)

# And the cloudadmin credential required for privileged endpoint access.
$CloudAdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force
$CloudAdminCreds = New-Object System.Management.Automation.PSCredential ("$domain\cloudadmin", $CloudAdminPass)

# Change the following as appropriate.
$PfxPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force

# For version 1.1.47.0 or later, the PowerShell modules used by the RP deployment are placed in C:\Program Files\SqlMySqlPsh,
# The deployment script adds this path to the system $env:PSModulePath to ensure correct modules are used.
$rpModulePath = Join-Path -Path $env:ProgramFiles -ChildPath 'SqlMySqlPsh'
$env:PSModulePath = $env:PSModulePath + ";" + $rpModulePath

# Change to the directory folder where you extracted the installation files. Don't provide a certificate on ASDK!
. $tempDir\DeployMySQLProvider.ps1 `
    -AzCredential $AdminCreds `
    -VMLocalCredential $vmLocalAdminCreds `
    -CloudAdminCredential $cloudAdminCreds `
    -PrivilegedEndpoint $privilegedEndpoint `
    -AzureEnvironment $AzureEnvironment `
    -DefaultSSLCertificatePassword $PfxPass `
    -DependencyFilesLocalPath $tempDir\cert `
    -AcceptLicense

當資源提供者安裝腳本完成時,請重新整理瀏覽器,以確定您可以看到最新的更新,並關閉目前的 PowerShell 會話。

使用 Azure Stack Hub 入口網站確認 V1 部署

  1. 以服務管理員身分登入系統管理員入口網站。
  2. 選取 資源群組
  3. 選取 系統。<位置>.mysqladapter 資源群組。
  4. 在 [資源群組概觀] 的 [摘要] 頁面上,不應有失敗的部署。
  5. 最後,在系統管理員入口網站中選取 [虛擬機],以確認 MySQL 資源提供者 VM 已成功建立並正在執行。

Microsoft Entra 識別碼的重要設定

如果你的 Azure Stack Hub 使用 Microsoft Entra ID 作為身份提供者,請確保安裝 MySQL Server 資源提供者的虛擬機有外接網路連線。

後續步驟

新增主控伺服器