はじめに
実はこれまで MySQL Databese を使ったことがありません。昔々 Oracle Database を使ってアプリ開発をしたことがあるので、データベースを少し触ってテストデータを作成したり、JDBCドライバーを設定したり、SQLでデータ呼び出したりした経験はありますが、データベースは全くもって詳しくないです。
この度OCIで提供されたMySQL Database Service(以後 MDS) はPaaSでのサービス提供なので構築も簡単そうです。MDSの勉強も兼ねて環境構築して使ってみたいと思います。
構築環境および前提
- MDSはOCIのプライベート・サブネットに構築します。
- MDSへはパブリック・サブネットの踏み台サーバーから接続を試みます。踏み台サーバーは既に構成済みのものを使用します。
- 仮想クラウド・ネットワーク(VCN)も既存設定済みのものを使用します。
1. MDSの作成
OCIにサインイン後、左上のナビゲーションメニューから[データベース]-[MySQL]を選択し、MySQL DBシステムの作成 をクリックします。
作成に必要な情報を入力していきます。
[コンパートメントに作成] 任意のコンパートメントを指定します。
[名前] 任意の名前を指定します。例)mysql01
[スタンドアロン] を選択。今回は単体のMDSを作成します。
続けて、
管理者資格証明の作成
[ユーザー名] root とします。
[パスワード] 任意のパスワードを指定します。
ネットワーキングの構成
[仮想クラウド・ネットワーク] 既存の仮想クラウド・ネットワークを選択。例)osaka-vcn
[サブネット] プライベート・サブネットを選択します。
配置の構成
[フォルト・ドメインの選択] 任意のフォルト・ドメインを選択します。
ハードウェアの構成
[シェイプの選択] 希望するシェイプに変更します。単にテスト用途なのでデフォルトの最小構成のままとします。
[データ・ストレージ・サイズ(GB)] こちらもデフォルト値のままとします。
バックアップ・プランの構成
[自動バックアップの有効化] 有効化のまま。他の設定もデフォルトのままとします。
作成 ボタンをクリックして、MDSを作成します。
しばらくすると、MDSが作成されました。
ページ左下のリソースにて、エンドポイントをクリックして、作成されたMDSのエンドポイントを確認しておきます。これらの値は後段のセキュリティリストの設定やMDSへの接続に使用します。
2. セキュリティリストの設定
MDSに接続するためには仮想クラウド・ネットワークのセキュリティ・リストのイングレス・ルールでMDSと通信するための TCP/IP 3306ポートの通信を許可しておく必要があります。
ナビゲーションメニューから[ネットワーキング]-[仮想クラウド・ネットワーク]を選択し、作成済みの仮想クラウド・ネットワーク(例)osaka-vcn)をクリックします。
ページ左下のリソースにて、セキュリティ・リストをクリックして、プライベート・サブネットのセキュリティ・リストをクリックします。続けてイングエス・ルールの追加をクリックします。
イングレス・ルールを追加します。
仮想クラウド・ネットワーク(osaka-vcn)からポート3306(MDS) への接続を許可します。
[ソースCIDR] 192.168.0.0/16 と入力します。
[宛先ポート範囲] 3306 MDSのポートを指定します。
3. MySQLクライアントのインストール
既に作成している踏み台サーバーからMDSへの接続を試みるため、踏み台サーバーにMySQLクライアントをインストールします。踏み台サーバーの設定については、以下が参考になるかもしれません。
[OCI] 踏み台サーバーからSSHでプライベート・サブネットのインスタンスへの接続と、NATゲートウェイを試してみる
https://qiita.com/cocotaro0202/items/7b115b108bb9f03b90a6
踏み台サーバーの起動とパブリックIPアドレスを確認し、Windows PowerShell 及び Tera Term などのターミナルから踏み台サーバーに接続します。
ssh -i ~/.ssh/id_rsa opc@168.138.XXX.XXX
踏み台サーバーで次のコマンド操作を実行して、MySQLクライアントをインストールします。
sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo yum install mysql
詳細は、巻末の参考URL「その9 - クラウドでMySQL Databaseを使う」4.MySQLクライアントのインストールもご覧ください。
4. MDSへの接続確認
踏み台サーバーでMySQLクライアントのインストールが完了したので、踏み台サーバーからMDSへの接続を試みます。MDSを作成した時のユーザー名、エンドポイントのホスト名を指定します。
- ユーザー名:root
- ホスト名:例)TestMDS.sub03060550521.osakavcn.oraclevcn.com
mysql -u root -p -h TestMDS.sub03060550521.osakavcn.oraclevcn.com
MDS作成時に指定したパスワードを入力し、その後 mysql プロンプトが表示され、無事MDSへの接続に成功することができました。
MDSへの接続は以上で完了ですが、データも入れてSQLを実行したいので、巻末の参考URLの書籍に添付されたいたサンプルデータを投入してみます。
mysql -u root -p -h TestMDS.sub03060550521.osakavcn.oraclevcn.com < term3.sql
データベース一覧を参照すると、サンプルデータベース(term03db)が投入されたことが確認できました。
さらにサンプルデータベースを選択し、テーブル一覧を表示します。
※ stations テーブルはJRの駅名情報を格納しているテーブルです。
あとは適当に SELECT 文を発行してサンプルデータを参照できたので、MDSの動作確認としては以上で終了とします。
MySQL初心者にも簡単にMDSを構成し使用することができました。最近MDSでは高可用性機能がリリースされたので、継続してこれらも試せたらと思います。