MySQL 数据库服务器可以运行在基于 IBM POWER 和 PowerPC 处理器的服务上的 Linux(统称为 Linux on POWER)中,通过本文了解其可用性。作为面向在 Linux on POWER 中使用 MySQL 的应用程序开发者的一篇简短指南,本文适合那些熟悉自己的系统环境、网络、媒体设计和磁盘资源的 MySQL 开发者和数据库管理员阅读。
简介
MySQL 是当前最为流行的开放源代码数据库之一。可以遵循商业化及开放源代码双重许可的模型来使用它。从嵌入式设备到集群企业环境,MySQL 在很多种类的应用程序中得到了应用。
POWER5? 处理器是 IBM PPC? AS 体系结构的最新 64-位 实现(版本 2.02)。它与所有 PPC 和 PPC AS 应用程序级代码都是二进制兼容的(binary compatible)。POWER5 芯片设计用于非常高频率的操作,最高可达 2.0 GHz。Power 体系结构既支持 64-位 寻址,也支持 32-位 寻址。早期的实现使用的是 32-位 子集,只支持 32-位 应用程序。自 1995 年以来,64-位 处理器实现了完整的体系结构,支持与现有 32-位 应用程序的完全二进制应用程序兼容,并完全支持新的 64-位 应用程序。64-位 POWER 和 PPC 芯片已经应用于 IBM? eServer? iSeries?、 pSeries? OpenPower? 和 BladeCenter? JS20 服务器,以及 Apple 的 G5 硬件。
POWER5 体系结构是对 POWER4 体系结构的改进,但是保持了二进制与结构的兼容性。相同的管道结构使得为 POWER4 所生成的处理器代码可以同样好地应用于基于 POWER5 处理器的系统。POWER5 的关键特性包括微分区(micro-partitioning)和同步多线程(Simultaneous Multi-threading)。
Linux 已经在商业和技术计算环境中占据了重要地位,并迅速为多种业务所接受。IBM Linux Technology Center(LTC)是当前世界上最主要的企业 Linux 开发组织,他们主要致力于在 POWER 体系结构上为所有主流 Linux 发行版本提供开发、支持和改进。与来自开放源代码社区的传统支持一道,独立软件提供商(Independent software vendor,ISV)和客户帮助此类支持能够提供一个辅助开发者的空前网络。
MySQL 及相关组件
传统上,在所有主流 Linux 发行版本中都会包含 MySQL。用于 POWER 上的主流 LInux 发行版本,比如 Red Hat Enterprise Linux 和 SUSE LINUX Enterprise Server,也不例外。
虽然不同的 Linux 发行版本中会有不同的 MySQL 和 MySQL 产品软件包和版本,不过应该都会有下面这些:
数据库服务器(Database Server)
数据库客户机(Database Client)
流行编程语言的接口与扩展,比如 Java、C/C++、Python、Perl、PHP,等等
用于不同产品和开发 API 的程序库、模块和插件
与 MySQL 相关的其他工具
要获得产品的详细列表和描述,请参考在 参考资料 中列出的最主要的 MySQL 资源中心,MySQL.com。 MySQL.com Web 站点是 MySQL 资料和产品下载的主要资源,其中包括用于 Linux on POWER 的下载。从该站点上可以下载用于 Linux on POWER 的已编译的最新 MySQL 版本和相关产品,同样也可以下载源代码。
可以以若干种方式获得 MySQL 数据库。有一些可以遵循双重的商业和开放源代码许可获得,有一些只能遵循某个商业许可获得。要获得更多信息,请参考 MySQL 数据库服务器网页(参阅 参考资料)。
操作系统和硬件
本文主要涉及了 IBM 支持的、用于 POWER 硬件的两个 Linux on POWER 发行版本:
Red Hat Enterprise Linux
SUSE LINUX Enterprise Server
用于 MySQL for Linux on POWER 也可以运行在其他 Linux 发行版本上,比如 Yellow Dog Linux、Y-HPC、Debian 和很多其他运行于 IBM 和 Apple 所制造的 POWER 和 PPC 硬件上的发行版本。
在 Linux on POWER 上安装 MySQL
在 Linux on POWER 上安装 MySQL 与在任何其他体系结构上的 Linux 操作系统中安装没有区别。
如果您使用的是 POWER 上 Linux 发行版本中所包含的 MySQL 程序包,那么安装 MySQL 非常简单,只需要通过发行版本的媒介安装所需的 rpm 软件包。MySQL.com Web 站点也以 Linux 社区通常接受的压缩格式提供了 POWER 和 PPC 上 Linux 的下载。
MySQL 本身及很多工具的源代码只是遵循开放源代码许可提供,可以在 POWER 上 Linux 中使用 GNU Compiler Collection(GCC)方便地进行编译。
MySQL 管理工具
有一些 MySQL 管理工具,它们使用交互式图形界面,简化了 MySQL 数据库的管理。
MySQL Administrator
MySQL Administrator 让您能够配置、备份/恢复、控制您的数据库以及 MySQL 服务器环境。 图 1 是在 POWER 上 Linux SLES 9 中运行的 MySQL Administrator 截图,展示了我们将要在下一节中创建的数据库结构。
图 1. MySQL Administrator 窗口
![](/images/load.gif)
可以在 POWER 上 Linux 中编译 MySQL Administrator 源代码。要获得关于 MySQL Administrator 的更多资料,请访问 MySQL Administrator 网页。(参阅 参考资料。)
MySQL 查询浏览器(Query Browser)
MySQL 查询浏览器是一个易用的图形化工具,可以用来创建、执行和优化 MySQL 中的查询。图 2 给出了在 POWER 上 Linux SLES 9 中运行的 MySQL 查询浏览器窗口截图。
图 2. MySQL 查询浏览器
![](/images/load.gif)
phpMyAdmin
phpMyAdmin 是另一个 MySQL 管理和控制工具。这个工具完全用 PHP 编写,如果有以下组件的支持,可以在任意 Linux 发行版本上应用:
PHP 运行期环境
具有 PHP 模块的 Apache web 服务器
PHP-MySQL 模块
Linux on POWER 发行版本默认会附带这些组件。配置很简单,在 phpMyAdmin 附带的文档中详细地进行了描述。 图 3 是在 Linux on POWER SLES 9 中运行的 phpMyAdmin 的截图。
图 3. phpMyAdmin
![](/images/load.gif)
要获得更多资料并下载 phpMyAdmin,请访问 phpMyAdmin Web 站点。(参阅 参考资料。)
迁移 MySQL
如果使用前面提到的管理工具,迁移 MySQL 数据库非常简单,因为 MySQL 数据库表结构保存在文件中,您可以将它们备份和拷贝到其他系统。要获得更多资料,请参考 MySQL 文档。
创建 MySQL 数据库
为了介绍一些关键的 MySQL 概念以及一些您可以在 MySQL 中执行的基本任务,文章的这一节将讨论一个简单的数据库设计。
数据库设计
此示例研究了一个简单的数据库,它保持了对某个 IT specialists contracting company 日常活动的追踪。 图 4 是一个实体关系图(Entity Relational Diagram,ERD),给出了公司简化的数据需求及操作宏观视图。
图 4. IT Specialists contracting company 数据库
![](/images/load.gif)
公司约定 IT 专家去从事不同客户的项目,并基于已经确定的价格按小时收取所提供服务的费用。JOB 表保持对客户为服务付费的每小时价格的追踪,那些价格取决于工作的类型。EMPLOYEE 表保持对雇员信息的追踪,其中包括雇员的职位,是指向 JOB 表中一个条目的外部关键字。JOB 表与 EMPLOYEE 表是 1:M 的任意关系。有可能存在某个职位而并没有相应雇员。另一方面,雇员需要拥有恰好一个主要职位。
PROJECT 表保存的是关于此公司所涉及到的项目的数据。一个项目必须恰好由公司的一位雇员来管理。有可能某个雇员会管理多于一个项目。不过,并不是每个雇员都会管理项目。
每位雇员会得到一张定单表格,在那张表格上他们记录每天为客户的具体项目工作了多少个小时,每小时价格是多少,以及要向客户收取的总费用。
一个雇员可以一次被指派到多个项目,或者一个项目都不指派。可能会有多个雇员为某个项目工作,或者一个也没有。这个 N:N 的关系通过联合实体 ORDERFORM 实现。
数据库中的所有表都按第三范式(3rd Normal Form,3NF)进行了标准化,所以我们可以开始创建基于前面的 ERD 的数据库结构。
创建数据库
首先,您需要启动 MySQL 客户机,并登录进入 MySQL:
shell mysql -h host -u user -p
Enter password: ********
成功地登录进入并获得 MySQL 命令行界面提示符后,可以开始创建数据库,如下:
mysql CREATE DATABASE CONTRACTING;
Query OK, 1 row affected (0.00 sec)
要确认 CONTRACTING 数据已经创建,执行下面的命令并得到如下的输出:
mysql SHOW DATABASES;
+-------------+
| Database
|
+-------------+
| CONTRACTING |
| mysql
|
| test
|
+-------------+
注意,SQL 代码和 MySQL 内部命令的大写是可选的,但是数据库的名称、表和列都对大小写敏感。例如,名为 “TEST" 的数据库不同于名为 “test" 的数据库。
现在需要切换到新创建的数据库:
mysql USE CONTRACTING
Database change