WordPress で Azure Database for MySQL を使う
先日開催された Microsoft によるカンファレンス Build 2017 で Azure Database for MySQL がプレビュー版としてリリースされています。
Azure Database for MySQL – Fully-Managed Service | Microsoft Azure
これまでは、Azure で MySQL のサービスがなかったんですよね(サードパーティーによるサービスはありました)。プレビュー版ですが、さっそく当サイトの WordPress のデータベースを Database for MySQL に切り替えて使ってみています(この記事の投稿時点)。
以前は Azure で MySQL を運用するには、仮想マシンに MySQL をインストールして使わざるを得ず、わざわざ仮想マシンやその上の OS まで扱う手間がありました。Azure Database for MySQL では、MySQL だけ扱えばよく、簡単にスケールもできます。
Web App で WordPress の新規作成
Azure Portal から新規に WordPress を Web App 上に作る場合、Database for MySQL を選べるようになっています。

Database for MySQL の料金は、1ヶ月数千円からです。

データベースへの接続文字列は Web App のアプリケーション設定で指定しています。接続文字列は次のような値が設定されています。
Database=mysqldatabase41877;Data Source=webapp-mysqldbserver-541c46dd-41877.mysql.database.azure.com;User [email protected];Password=********

WordPress の wp-config.php でのデータベース設定は、この値を使って指定されています。
<?php | |
$connectstr_dbhost = ''; | |
$connectstr_dbname = ''; | |
$connectstr_dbusername = ''; | |
$connectstr_dbpassword = ''; | |
foreach ($_SERVER as $key => $value) { | |
if (strpos($key, "MYSQLCONNSTR_") !== 0) { | |
continue; | |
} | |
$connectstr_dbhost = preg_replace("/^.*Data Source=(.+?);.*$/", "\\1", $value); | |
$connectstr_dbname = preg_replace("/^.*Database=(.+?);.*$/", "\\1", $value); | |
$connectstr_dbusername = preg_replace("/^.*User Id=(.+?);.*$/", "\\1", $value); | |
$connectstr_dbpassword = preg_replace("/^.*Password=(.+?)$/", "\\1", $value); | |
} | |
/** MySQL hostname */ | |
define('DB_HOST', $connectstr_dbhost); | |
/** The name of the database for WordPress */ | |
define('DB_NAME', $connectstr_dbname); | |
/** MySQL database username */ | |
define('DB_USER', $connectstr_dbusername); | |
/** MySQL database password */ | |
define('DB_PASSWORD', $connectstr_dbpassword); |
Database for MySQL
MySQL の情報や設定も見てみます。
サーバーに接続するためのサーバー名・ユーザー名は「概要」に表示されています。リソース使用率や作成したデータベース名などもわかります。

WordPress と使うときの接続セキュリティの設定です。SSL は無効、IP アドレスはすべて許可しています。

Azure Database for MySQL だけ新規に作ると、SSL 有効・ファイヤーウォール有効のため、既存の WordPress から接続するときは注意です。