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 Id=mysqldbuser@webapp-mysqldbserver-541c46dd-41877;Password=********
WordPress の wp-config.php でのデータベース設定は、この値を使って指定されています。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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 から接続するときは注意です。