このアプリケーションはMySQLの操作をブラウザ上で実行するPHPアプリです。
これまで紹介したアプリにおいてもcf-mysql-releaseのMySQLを度々利用しましたが、MySQLにテーブルの作成や初期データの入力などが必要になった際にデータベースの中身が見れないのはちょっと不便です。そんな時にこのアプリを利用すればデータベースの中身を見ながら作業が進められます。
基本情報
-
公式サイト
http://sqlbuddy.com/
-
ソースコード
公式サイトからダウンロード
-
参考
http://pentan.info/sql/mysql/sqlbuddy.html
デプロイ
手順- 0) 準備
- 1) アプリの起動
- 2) 動作確認
0.準備
まずはソースコードの取得からですが、バージョンを指定してダウンロードは出来なさそうなので公開されているものをダウンロードします。この時のバージョンは1.3.3(Jan 18, 2011)です。
$ wget https://github.com/calvinlough/sqlbuddy/raw/gh-pages/sqlbuddy.zip
$ unzip sqlbuddy.zip
$ cd sqlbuddy
sqlbuddy$ ls
ajaxcreatetable.php ajaxsavecolumnedit.php config.php edit.php functions.php includes LICENSE query.php themes
ajaxfulltext.php ajaxsaveedit.php css edituser.php home.php index.php locale README users.php
ajaximportfile.php ajaxsaveuseredit.php dboverview.php export.php images insert.php login.php serve.php
ajaxquery.php browse.php editcolumn.php exports import.php js logout.php structure.php
1.アプリの起動
cf push
を実行する前に 百日行記事 第10回 にあったように php-buildpack のオプション設定用ディレクトリと設定ファイルを作成しMySQLモジュールを読み込めるようにします。sqlbuddy$ mkdir .bp-config/
sqlbuddy$ vi .bp-config/options.json
{
"PHP_EXTENSIONS": ["mysql"]
}
これで準備完了。アプリを
--no-start
オプションを付けて cf push
し、これまで同様に cf-mysql-release で作成したMySQLのデータベース接続情報が cf env
で確認できるところまで実行します。sqlbuddy$ cf push sqlbuddy -b https://github.com/cloudfoundry/php-buildpack.git --no-start
sqlbuddy$ cf create-service p-mysql 100mb-dev app1-db
sqlbuddy$ cf bind-service sqlbuddy app1-db
sqlbuddy$ cf env sqlbuddy
Getting env variables for app sqlbuddy in org k-nagai / space work as k-nagai...
OK
System-Provided:
{
"VCAP_SERVICES": {
"p-mysql": [
{
"credentials": {
"hostname": "10.244.1.18",
"jdbcUrl": "jdbc:mysql://10.244.1.18:3306/cf_e5edadbd_37d9_4427_8b43_242df820e262?user=4LqkSI6cUfnzRjvf\u0026password=1PuiNgg1J02ITGhP",
"name": "cf_e5edadbd_37d9_4427_8b43_242df820e262",
"password": "1PuiNgg1J02ITGhP",
"port": 3306,
"uri": "mysql://4LqkSI6cUfnzRjvf:1PuiNgg1J02ITGhP@10.244.1.18:3306/cf_e5edadbd_37d9_4427_8b43_242df820e262?reconnect=true",
"username": "4LqkSI6cUfnzRjvf"
},
"label": "p-mysql",
"name": "app1-db",
"plan": "100mb-dev",
"tags": [
"mysql"
]
}
]
}
}
次にアプリを起動します。sqlbuddy$ cf start sqlbuddy
:
OK
requested state: started
instances: 1/1
usage: 256M x 1 instances
urls: sqlbuddy.10.244.0.34.xip.io
last uploaded: Tue Jun 23 07:38:27 +0000 2015
stack: lucid64
state since cpu memory disk details
#0 running 2015-06-23 04:39:15 PM 0.0% 23.2M of 256M 0 of 1G
デプロイ完了です。2.動作確認
ではブラウザでアクセスしましょう。ログイン画面が表示されるので
cf env
で得た接続情報を入力します。 今回の場合は上から”hostname”,”username”,”password”の順で入力。
ログインしたらこんな感じに表示されるので好みの
Language
を選んで利用して下さい。データベースの操作は左のツリーの
DATABASES
よりデータベース名を選択します。後は最上部のメニューにてQueryでSQLコマンドの入力かImportでSQLファイルの読み込み、またはGUIでテーブル作成などを行っていきます。
なおcf-mysql-releaseで提供されるMySQLではすべての操作が出来るわけではないのでテーブル作成やデータの挿入、データの確認程度で利用して下さい。
おまけ
今回の SQL Buddy はCloud Foundryで利用する場合、単体で使用するというよりは他のアプリでcf-mysql-releaseのMySQLを使う時に初期設定や確認で利用するケースが想定されます。その為、今回行った手順のように SQL Buddy 用のMySQLを作成するケースは少なく、他のアプリ用に作成したMySQLにバインドしてログインするといった手順になります。
また極端に言えば、SQL Buddy とMySQLをバインドして接続情報を得なくても、他のアプリとMySQLの接続情報を利用すればログイン可能です。
しかし、データベースとの接続情報をブラウザでやり取りするのは”いかがなものか”といった場合はこんな方法があります。
まずlogin.phpを下記のように編集します。
sqlbuddy$ cp login.php login.php.org
sqlbuddy$ vi login.php
sqlbuddy$ diff login.php.org login.php
18a19
> /*
22c23,29
<
---
> */
> $services = getenv("VCAP_SERVICES");
> $services_json = json_decode($services,true);
> $mysql_config = $services_json["p-mysql"][0]["credentials"];
> $host = $mysql_config["hostname"];
> $user = $mysql_config["username"];
> $pass = $mysql_config["password"];
編集内容は元々の”ログイン情報”が記載してある箇所をコメントアウトし、VCAP_SERVICESで取得した情報を設定するように変更しています。編集した SQL Buddy を先に紹介した手順で
cf push
してアクセスしたいMySQLのServiceにバインドしてから cf start
します。こうするとブラウザにアクセスした段階で既に該当のデータベースにログインした状態になります。
MySQLの作業が必要なくなればバインドを解除することでアクセスが出来なくなります。
また他のMySQLのServiceのデータベースの作業がしたくなった場合は、そのMySQLのServiceにバインドして
cf restage
するだけで利用可能です。今回使用したソフトウェア
- cf-release (v194)
https://github.com/cloudfoundry/cf-release/tree/v194
( https://github.com/cloudfoundry/cf-release/tree/345a8b3e1ea0005a3e9fced13f0bf6fa6f7ad981 ) - bosh-lite
https://github.com/cloudfoundry/bosh-lite/tree/01db9da7b4122f7d02858d92e0fe938e91256649 - CF CLI (v6.11.3-cebadc9-2015-05-20T19:00:58+00:00)
https://github.com/cloudfoundry/cli/releases/tag/v6.11.3 - cf-mysql-release (v16)
https://github.com/cloudfoundry/cf-mysql-release/tree/v16
(https://github.com/cloudfoundry/cf-mysql-release/tree/63f0bc3914914ce469c80df07c9fa49c5b836f11) - php-buildpack
https://github.com/cloudfoundry/php-buildpack/tree/6c5d638e7800938e8b086900548cb36a81c752b0 - sqlbuddy (1.3.3)
http://sqlbuddy.com/