您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
   
 
 
     
   
 订阅
  捐助
Bluemix上的轻量级Web管理工具
 
作者:唐春斌 来源:IBM 发布于:2015-5-19
  2415  次浏览      35
 

MySQL 和 PostgreSQL 是非常流行的开源数据库,IBM Bluemix 平台提供了相关服务,开发人员可以非常简单方便地在代码中进行访问。然而,Bluemix 缺乏简单易用的图形化管理工具,数据库管理较为复杂。经过一些调查,我们找到了三款 PHP 版本的轻量级数据库的 Web 管理工具:Adminer、phpMiniAdmin 和 dbkiss。测试表明,利用这些 Web 管理工具可以非常方便地管理 Bluemix 上的 MySQL 和 PostgreSQL 数据库服务,使用非常简单,响应速度快,而且只需要占用非常少的计算资源。

开发时您需要

1.一个 Bluemix 帐号

2.熟悉 Cloud Foundry 命令行工具

3.了解 PHP 语言(可选)

MySQL 和 PostgreSQL 是非常流行的开源数据库,被广泛应用到 Web 应用和移动应用开发的各个领域。Bluemix 对此提供了相应的服务,包括 ClearDB MySQL Database、mysql 和 postgresql 服务,开发人员不需要搭建任何的数据库,就可以非常方便地在应用中访问到 Bluemix 上的相应数据库服务。然而,Bluemix 提供的相关数据库管理工具比较复杂,使用起来不方便。

我们不想重新发明轮子来解决这个问题,事实上,已有很多开源的 MySQL 和 PostgreSQL 数据库 Web 管理工具,尤其是在 PHP 世界。您可能听说过 PHPMyAdmin,这是一款非常流行的 MySQL 的数据库管理工具,可以让管理人员通过 Web 方式管理 MySQL 数据库,然而,我们觉得 PHPMyAdmin 比较重量级,安装压缩包大小超过 8MB。我们希望找到一些轻量级的数据库 Web 管理工具,仅需要极少的计算资源(例如 128M 内存),就能够快速完成主要的数据库管理操作功能,比如表结构的创建更改和删除、数据的导入导出、SQL 语句执行等。

经过一些调查,我们找到了三款 PHP 版本的轻量级 MySQL 和 PostgreSQL 数据库的 Web 管理工具,Adminer,phpMiniAdmin 和dbkiss。经过一些小的改动,我们将这三款数据库管理工具成功部署到 Bluemix 上。测试表明,一个 128MB 内存的单实例运行时就可以支撑这些 Web 管理工具,管理数据库非常方便,响应速度很快,达到了期望的轻量级目标。

步骤 1:查看源代码和 PHP Buildpack 配置信息

可以在源代码处找到 Web 管理工具的所有代码和相关的 PHP Buildpack 配置文件。

Web 管理工具源代码

Adminer,phpMiniAdmin 和dbkiss这三款工具的源代码都只有一个文件,分别为 adminer-4.1.0.php、phpminiadmin.php 和 dbkiss.php,可以从源代码处找到,也可以从相应的网站下载。关于如何通过 PHP 语言实现 MySQL 和 PostgreSQL 数据库管理功能,请大家查看源代码。本文主要侧重于介绍如何部署和使用这些工具来管理数据库。

为了改善对 Bluemix 数据库服务的支持,对 dbkiss(dbkiss.php)做了如下改动,使其能够支持包含端口号的 PostgreSQL 数据库 URL 地址,Adminer 和 phpMiniAdmin 源代码未做改动。

// Support PostgreSQL server URL with port included
$flag=strpos($db_server, ":");
if($flag== FALSE) {
$conn = sprintf("host='%s' dbname='%s' user='%s' password='%s'",
$db_server, $db_name, $db_user, $db_pass);
}
else {
$db_host=substr($db_server, 0, $flag);
$db_port=substr($db_server, $flag+1);
$conn = sprintf("host='%s' port='%s' dbname='%s' user='%s' password='%s'",
$db_host, $db_port, $db_name, $db_user, $db_pass);
}

PHP Buildpack 配置文件

PHP Buildpack 的配置文件是.bp-config/options.json,在本例中我们启用了 MySQL 和 PostgreSQL 的数据库驱动模块,即如下的("pgsql", "mysql")。想要了解更多 PHP Buildpack 配置信息,请参考 https://github.com/dmikusa-pivotal/cf-php-build-pack/blob/master/docs/config.md。

{             
"PHP_EXTENSIONS": ["mongo", "pgsql", "mysql", "zlib", "bz2", "curl", "mcrypt"]
}

步骤 2:部署 Web 管理工具

Bluemix 默认提供 Java Liberty、Node.js 和 Ruby 运行时,可以通过 Bring Your Buildpack 方式支持其他多种运行时,PHP 就是其中非常热门的一种。社区也提供了相应的 Buildpack,例如本例中采用的就是 https://github.com/dmikusa-pivotal/cf-php-build-pack。

1.下载 Web 管理工具的源代码。

2.进入 dbadmin 目录,修改 manifest.yml 文件,将<your_app_name>改成您的应用的名字,在本例中为 dbadmin001。其中 memory 设置为 128M,可以按照需要修改。

---
applications:
- name: <your_app_name>
memory: 128M
instances: 1
host: <your_app_name>
buildpack: https://github.com/dmikusa-pivotal/cf-php-build-pack

3.使用 cf 工具登录 Bluemix。

cf login -a https://api.ng.bluemix.net

 

4.使用 cf 工具将应用部署到 Bluemix。

cf push

想了解更多 cf 工具使用信息,请参考https://www.ng.bluemix.net/docs/#cli/index.html。

5.通过 http://<your_app_name>.mybluemix.net 访问已部署的 Web 管理工具,在本例中是 http://dbadmin001.mybluemix.net。

注:完成一个 Web 管理工具的部署,可以同时管理多个应用中的 MySQL 和 PostgreSQL 数据库服务。如果您不想部署自己的数据库 Web 管理工具,您完全可以通过上文提到的已部署好的工具(http://dbadmin001.mybluemix.net)来管理您应用中所使用的数据库。

步骤 3:通过 VCAP_SERVICES 获取数据库访问信息

Web 管理工具部署完成之后,就可以开始测试连接相关的数据库。Web 管理工具可以非常方便地管理 Bluemix 上其他应用使用的 MySQL 和 PostgreSQL 数据库服务,只需要提供相应的 URL、数据库名、用户名和密码等信息。

在本例中,我们在 PHP Buildpack 上添加了 MySQL 和 PostgreSQL 数据库服务作为测试数据库。如果您已经在其他应用中添加了 MySQL 和 PostgreSQL 数据库服务,请跳过增加 MySQL 服务和 PostgreSQL 服务部分内容。

增加 MySQL 服务

1.使用 Bluemix 帐号登录Bluemix网站。

2.点击 Dashboard 页面上创建的应用。

3.点击 Add A Service。

4.在 Data Management 选项下选择 ClearDB MySQL Database 或者 mysql 服务。

5.点击 Create。如果出现提示要重新启动应用,点击 OK。

增加 PostgreSQL 服务

1.使用 Bluemix 帐号登录Bluemix网站。

2.点击 Dashboard 页面上创建的应用。

3.点击 Add A Service。

4.在 Data Management 选项下选择 postgresql 服务。

5.点击 Create。如果出现提示要重新启动应用,点击 OK。

通过 VCAP_SERVICES 获取信息

1.使用 Bluemix 帐号登录Bluemix网站。

2.点击 Dashboard 页面上包含 MySQL 或 PostgreSQL 服务的应用。

3.点击所使用的 Buildpack 的名字,在本例中是 cf-php-build-pack。

4.在 Environment Variables 选项卡下可以找到 MySQL 或 PostgreSQL 服务的 VCAP_SERVICES 信息。

MySQL 数据库服务的数据格式如下:

"jdbcUrl": "jdbc:mysql://<user>:<password>@<db_url_with_port>/<db_name>"

PostgreSQL 数据库服务的数据格式如下:

"uri": "postgres://<user>:<password>@<db_url_with_port>/<db_name>"

其中<user>是用户名,<password>是密码,<db_url_with_port>是数据库的 URL 地址,包含端口号,<db_name>是数据库名。请记录这些信息,使用 Web 管理工具时需要用来作为登录信息提供。

步骤 4:通过 Web 管理工具访问数据库

访问 Web 管理工具地址,在本例中是 http://dbadmin001.mybluemix.net。

Adminer 工具

Adminer 工具支持 MySQL 和 PostgreSQL 数据库服务,并且支持多语言(包括中文),文件大小不到 400KB。在登录界面 System 选项可以选择 MySQL 和 PostgreSQL,输入上文提到的 VCAP_SERVICES 相关信息,登录到管理界面。图形化界面非常简单直观,如下图所示。

 

phpMiniAdmin 工具

phpMiniAdmin 工具只支持 MySQL 数据库服务,文件大小不到 50KB,可谓是非常之轻。在登录界面输入 VCAP_SERVICES 相关信息,登录到管理界面。只需要输入相关的 SQL 指令就可以非常方便地操作数据库,如下图所示。

Dbkiss 工具

dbkiss 工具支持 MySQL 和 PostgreSQL 数据库服务,文件大小不到 150KB,同样也是非常轻量级。选择数据库类型,输入 VCAP_SERVICES 相关信息登录到管理界面,就可以对数据库进行相关操作,如下图所示。

三种工具比较

总体而言,Adminer、phpMiniAdmin 和 dbkiss 这三款 Web 管理工具都非常之轻量级,能够很方便地对 MySQL 和 PostgreSQL 数据库进行管理,提供包括表结构的创建更改和删除、数据的导入导出、SQL 语句执行等主要数据库管理功能。尤其是 Adminer,提供很多图形化的菜单,不需要熟悉 SQL 语句就可以进行简单操作,而且还支持多语言,包括中文,简单易用。

当然,三种工具都能大大简化开发人员管理 Bluemix 上 MySQL 和 PostgreSQL 数据库服务的复杂度。所谓萝卜青菜,各有所爱,开发人员可以根据需要选择自己所喜爱数据库的管理工具,提高 Bluemix 上应用开发的效率。

总结

工欲善其事,必先利其器。在本文中,我们找到了三款开源的 PHP 版本的轻量级 MySQL 和 PostgreSQL 数据库的 Web 管理工具 , 经过一些小的改动,这些管理工具都能顺利地运行到 Bluemix 上。测试表明,使用这些工具可以大大降低开发人员管理 MySQL 和 PostgreSQL 数据库的难度,操作简单,响应速度快,而且只需占用非常少的计算资源。如果您的 Bluemix 应用中使用到了 MySQL 或 PostgreSQL 数据库服务,不妨一试。

   
2415 次浏览       35
相关文章

基于EA的数据库建模
数据流建模(EA指南)
“数据湖”:概念、特征、架构与案例
在线商城数据库系统设计 思路+效果
 
相关文档

Greenplum数据库基础培训
MySQL5.1性能优化方案
某电商数据中台架构实践
MySQL高扩展架构设计
相关课程

数据治理、数据架构及数据标准
MongoDB实战课程
并发、大容量、高性能数据库设计与优化
PostgreSQL数据库实战培训
最新活动计划
嵌入式软件架构设计 12-11[北京]
LLM大模型与智能体开发实战 12-18[北京]
嵌入式软件测试 12-25[北京]
AI原生应用的微服务架构 1-9[北京]
AI大模型编写高质量代码 1-14[北京]
需求分析与管理 1-22[北京]

MySQL索引背后的数据结构
MySQL性能调优与架构设计
SQL Server数据库备份与恢复
让数据库飞起来 10大DB2优化
oracle的临时表空间写满磁盘
数据库的跨平台设计
更多...   


并发、大容量、高性能数据库
高级数据库架构设计师
Hadoop原理与实践
Oracle 数据仓库
数据仓库和数据挖掘
Oracle数据库开发与管理


GE 区块链技术与实现培训
航天科工某子公司 Nodejs高级应用开发
中盛益华 卓越管理者必须具备的五项能力
某信息技术公司 Python培训
某博彩IT系统厂商 易用性测试与评估
中国邮储银行 测试成熟度模型集成(TMMI)
中物院 产品经理与产品管理
更多...