Bluemix
提供了 MySQL 和 PostgreSQL 的数据库服务,用户可以直接调用数据库,带来了使用上的便利,但用户目前在
Bluemix 上无法作为管理员直接管理数据库。本文主要介绍如何在 Bluemix 的云平台上管理您的数据库。
本文适用范围
Bluemix 并没有提供一个方案用来在线管理您创建的数据库,如 MySQL,PostgreSQL
等。当用户在 Bluemix 上创建了数据库,我们需要一个解决方案去在线管理数据库。本文主要解决在如何
Bluemix 云平台上直接管理您创建的 MySQL 和 PostgreSQL 后台数据库,配置完成后,可以完成数据库的增加、删除、修改和查询等基本任务,可以允许您运行
SQL 脚本。
Bluemix 的数据库服务简介
Bluemix 平台让开发人员、企业和最终用户可以探索云应用程序的功能,这些功能将推动下一代的云应用程序和服务。应用程序可以是传统应用程序、社交应用程序、移动应用程序或三者的结合,并包括大数据的要求。无论功能如何组合,构建于
Bluemix 之上的应用程序都将包含以下属性:
1.降低配置要求(应用程序或基础架构)
2.灵活的容量
3.自动的技术任务
4.多种工作负载类型
其中 Bluemix 平台提供了多种可供用户选择的数据库服务,如下图所示:
图 1.Bluemix 数据库服务
管理 MySQL 数据库
安装部署 phpMyadmin 到 Bluemix
phpMyadmin 是用 PHP 开发的一个免费的工具,用来通过 Web
管理 MySQL 数据库。phpMyadmin 支持很多版本的 MySQL 数据库。通过 phpMyadmin
的 Web 用户界面可以实现很多常用的数据库操作,如管理数据库(database)、表格(table)、列(column)、关系(relation)、索引(index)、用户(user)、权限(permission)等等,您还可以直接执行
SQL 语句。
由于 Bluemix 提供服务的目录中,并没有 PHP runtime
的支持,所以我们需要使用第三方提供的 buildpack 去支持 PHP 运行。下面将列出几个详细步骤去部署
phpMyadmin 应用程序。
由于我们需要用到 cf 工具去部署 Bluemix 应用,首先需要下载
cf 工具,可以从下面网址下载一个。https://github.com/cloudfoundry/cli/releases
下载 phpMyadmin 应用包,可以参考下面的网址。建议使用最新版本。http://www.phpmyadmin.net/home_page/downloads.php
上传 phpMyadmin 到 Bluemix 服务器,本文建议使用 mainifest.yml
来上传您的应用,将 mainifest.xml 编辑后放到 phpMyadmin 的根目录下。
mainifest.xml 内容可参考如下:
--- applications: - name: phpadmin-demo memory: 128M instances: 1 host: phpadmin-demo domain: mybluemix.net path: . buildpack: https://github.com/dmikusa-pivotal/cf-php-build-pack.git |
内容解释:
name: app 的名字
memory: 分配的内存
host:app 的主机名
domain: Bluemix 域
buildpack: php 的 buildpack 路径
打开 CMD 命令行工具,进入到 phpMyadmin 的目录,运行命令 cf push。
如果看到下图所示的日志,就表明您的应用已经成功部署到 Bluemix 服务器。
图 2.上传 phpadmin-demo 应用
登录到您的 Bluemix 账户,应该可以看到应用已经成功运行。
图 3.phpadmin-demo 应用已经运行
创建一个 MySQL 服务
我们需要创建一个 MySQL 的数据库服务,并绑定到您刚刚创建的 phpadmin-demo 的程序上,通过简单的配置您就可以管理您的数据库。
创建 mysql 服务,在 CMD 窗口,请运行 cf create-service SERVICE
PLAN SERVICE_INSTANCE。SERVICE 可以是 mysql,PLAN 可以是 100,SERVICE_INSTANCE
是您的数据库名字,如 mysql-100。命令行如下所示。本文使用命令行创建 MySQL 数据库,您也可以通过
Web UI 来完成这一个操作。
cf create-service mysql 100 mysql-100 |
绑定 mysql-100 到您的应用程序,请运行命令cf bind-service phpadmin-demo
mysql-100 即可。
登陆到您的 Bluemix 账户,可以获取到 mysql 的管理员用户凭据,即可用来管理您的 mysql
数据库。
图 4. MySQL 凭据
访问您的应用程序的 URL http://phpadmin-demo.pngx.mybluemix.net/,使用上面得到的
MySQL 凭据登陆,就可以管理您的 MySQL 数据库。如下图所示:
图 5.phpMyadmin 登陆界面
图 6. phpMyadmin 管理界面
管理 PostgreSQL 数据库
安装部署 WebSQL 到 Bluemix 环境
WebSQL 是一个通过 web 管理数据库的最佳解决方案,其用户的操作界面几近和桌面端程序相同,您不用像使用
Web 程序通过切换页面来管理数据库,和您平时使用桌面的程序操作完全一样。您仅仅需要登陆到管理页面,既可以轻松的完成对数据库的操作和维护。目前
WebSQL 支持三种数据库平台,如 MySQL、SQLite 和 PostgreSQL。
您可以从如下网址下载最新的 WebSQL 程序,http://sourceforge.net/projects/mywebsql/files/stable/mywebsql-3.4.zip/download。
由于部署 WebSQL 同样需要 PHP 的支持,可以参照之前的 phpMyadmin 部署程序到 Bluemix
服务器,步骤基本相同,就不在此赘述。为了支持 PostgreSQL,您需要修改 config 下的 servers.php
文件以达到支持 PostgreSQL。需要添加代码从 Bluemix 环境去获得数据库的登陆凭据,并注释掉其他数据库服务,如果需要使用其他数据库服务,去掉注释字符即可。
代码示例如下所示:
/* * Read MySQL service properties from _ENV['VCAP_SERVICES'] */ $services = json_decode($_ENV['VCAP_SERVICES'], true); //$service = $services['mysql-5.5'][0]; // if you choose the mysql service $service = $services['postgresql-9.1'][0];//if use choose the postgresql-9.1 $host = $service['credentials']['hostname']; $port=$service['credentials']['port']; $SERVER_LIST = array( /*'Localhost MySQL' => array( 'host' => 'localhost', 'driver' => extension_loaded('mysqli') ? 'mysqli' : 'mysql5' ), 'SQLite Databases' => array( 'host' => 'c:/sqlitedb/', 'driver' => 'sqlite', 'user' => 'root', // set this yourself 'password' => 'sqlite' // set this yourself ), */ 'Localhost PostgreSQL' => array( 'host' => 'localhost', 'driver' => 'pgsql' ), /*'MySQL Proxy Server' => array( 'host' => 'localhost:4040', 'driver' => 'mysql5' ), 'MySQL 4' => array( 'host' => 'localhost', 'driver' => 'mysql4' ), */ ); |
创建一个 PostgreSQL 服务
跟上面的 MySQL 一样需要创建一个 PostgreSQL 服务,可以通过 cf 工具的命令行创建,也可以通过
Web UI 创建,命令行如下所示:
cf create-service postgresql 100 postgresql-100 |
绑定此服务到您已经部署的 WebSQL 应用,就可以通过 WebSQL 的管理界面来管理您的数据库了。
通过前面 2 个案例的说明,您可以运用同样的方法在 Bluemix 上部署更多的应用支持不同的数据库。
|