測試微軟在 Azure 上所新增的 MySQL 的 PaaS 服務
從今年五月開始,在 Azure 上多增加 MySQL 的服務,跟以往在使用 IaaS 服務的 MySQL 的 VM 有所不同,我們可以更專心在資料庫的使用,而不用管底層是甚麼樣的作業系統和架構。為了更了解此項的服務,就花了一點時間來測試一下。
首先我們從 Azure 的 Portal 上面,在新增資源的時候,在 Database 類型之下,我們可以看到一個 preview 版本的 MySQL 的服務,也因為如此,可能後續您選擇不同的地區的時候,會有可能不支援的狀況。
當我們選擇之後,從出現的設定畫面中可以看到像是伺服器名稱、登入帳號、密碼等資訊,這些可以按照您所要的去做設定。而在最下面倒數第二個選項,我們可以看到有 5.7 和 5.6 的兩個版本可以選擇。從這裡可以稍微知道一點,選擇使用 MySQL 的 PaaS 服務時候,你是擁有一個完整的 MySQL Instance可以使用,這點就跟 Azure SQL Database 有點不同,Azure SQL Database 是按照單一資料庫來做管理的。
當我們看到最下面的定價層,點選下去可以看到目前有提供 基本 和 標準兩種規格,而在 MySQL 的服務,你可以選擇不同大小的計算單位和儲存體大小,這點也跟 Azure SQL Database 不同。MySQL 計算單位主要是用 CPU 和記憶體來做計算,且整個伺服器的大小可以按需要調整整個伺服器所需要的空間;而 Azure SQL Database 的 DTU 則是用 CPU、記憶體、讀寫 IO 來做計算。不同等級的資料庫只能有特定大小的容量。
當確認好相關設定之後,就可以建立出這個 MySQL 的服務來做使用了。
當我們選擇剛剛所建立出來的 MySQL 服務的時候,從下圖的右邊 Menu 中可以看出來,目前 Azure 上面的 MySQL 服務,並沒有提供太多的附加功能,但也意味著,所有 MySQL 本來可以用的功能,也都還是一樣。
那接著我們要試試看用 MySQL 的 GUI 工具,是否可以順利連接。而在連接之前,我們要先注意一個地方,在設定的地方有個「連接安全性」
點選進去之後,可以看到有這裡有 SSL 設定 和 防火牆規則 的設定。SSL 是讓 MySQL 的 TCP 連線的時候是採用加密的方式,預設是開啟的,但可能要看您的 GUI 工具和應用程式是否支援,如果您的是沒有支援,則記得要將這裡給關閉;另外一個是防火牆的規則,有使用過 MySQL 的人,應該都會知道在 MySQL 建立帳號的時候,會允許帳號可以透過那些 Host 來做連線,而在 MySQL 的服務,微軟則是在 MySQL 的前面,再多加上一層防火牆來做控管,因此雖然我們在一開始建立帳號的時候有設定一組帳密,但這裡防火牆要是沒有開,還是沒有辦法連上,這裡因為目前是測試使用,因此我先選擇上方的「新增我的 IP 」,Azure Portal 就會將目前您的 IP 給加入到防火牆允許的規則內了。
這裡我使用我比較順手的 HeidiSQL 這個工具來做測試,我在建立連線的時候,按照 Azure Portal 上面的設定,將相關屬性給設定好
並且在高級的頁籤,設定要使用 SSL 來連線
順利連線之後,我們到 mysql 的資料庫下面,開啟 user 的資料表,在這裡就可以看到 MySQL 這個服務在建立的時候,都偷埋進去另外兩個 Azure 用來管理 MySQL 服務的帳號 mysql.sys 和 azure_superuser 。
當然你也可以自己去建立自己想要的資料庫,只要容量不要超過限制就都可以正常使用。
剛好最近要考慮把 Mantis 這套 Issue 管理系統整個都移到 Azure 上面,目前測試下來,MySQL 的服務算是蠻簡單架設和使用的,因此再搭配 Web App 上面來跑 PHP 的系統,應該可以來個完美搭配。