MariaDB入門 - MariaDBをPerlシステム開発で使う

MariaDBデータベースに接続する

MariaDBデータベースに接続してみましょう。MariaDBデータベースに接続するにはmysqlコマンドを使用します。

mysql -uユーザー名 -p データベース名

ユーザー名が「kimoto」で、データベース名が「kimotosystem」だった場合は、以下のようになります。

mysql -ukimoto -p kimotosystem

パスワードを聞かれるので、入力すると接続できます。

ポート番号を指定して、データベースに接続する

MariaDBのポート番号が、MariaDBのデフォルトのポート番号と異なる場合は、ポート番号を指定して接続しましょう。

mysql -ukimoto -P 3306 -p kimotosystem

ホスト名を指定して、データベースに接続する

ホスト名を指定して、データベースに接続してみましょう。データベースが、リモートに存在する場合は、リモートのホスト名(ドメイン名かIPアドレス)を指定して接続できます。

mysql -h kimotosystem.mariadb.database.azure.com -ukimoto -p kimotosystem

ホスト名を開発用と本番用で切り替える

ホスト名を開発用のデータベースと、本番用のデータベースで切り替えるには、どうすればよいのでしょうか?

一番簡単な方法は、環境変数で定義して、環境変数に応じて設定ファイルを変更可能なWebフレームワークを使用することです。

環境変数を定義

まず、環境変数を定義しましょう。Linuxでbashを使っている場合は「~/.bashrc」に定義します。

# 開発環境
MYAPP_DATABASE_HOST=kimotosystem-devel.mariadb.database.azure.com
# 本番環境
MYAPP_DATABASE_HOST=kimotosystem.mariadb.database.azure.com

設定ファイル

たとえば、Mojoliciousの設定ファイル「myapp.conf」でこうする。

my $host = $ENV{MYAPP_DATABASE_HOST};
{
  # Database
  db_dsn => "dbi:mysql:database=kimotosystem;host=$host",
}

こんな記述ができるのは「myapp.conf」が、実際は設定ファイルではなく、ハッシュリファレンスを返すPerlプログラムだからです。

プログラム可能な設定ファイルを持っているWebフレームワークを使うことで、データベースのホスト名を、開発環境と、本番環境で、簡単に切り替えることができます。