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 窗口
可以在 POWER 上 Linux 中编译 MySQL Administrator 源代码。要获得关于 MySQL Administrator 的更多资料,请访问 MySQL Administrator 网页。(参阅 参考资料。)
MySQL 查询浏览器(Query Browser)
MySQL 查询浏览器是一个易用的图形化工具,可以用来创建、执行和优化 MySQL 中的查询。图 2 给出了在 POWER 上 Linux SLES 9 中运行的 MySQL 查询浏览器窗口截图。
图 2. MySQL 查询浏览器
类似于 MySQL Administrator,也可以获得 MySQL 查询浏览器的源代码并在 Linux on POWER 中编译它。要获得关于 MySQL 查询浏览器的更多资料,请访问 MySQL 查询浏览器网页。(参阅 参考资料。)
phpMyAdmin
phpMyAdmin 是另一个 MySQL 管理和控制工具。这个工具完全用 PHP 编写,如果有以下组件的支持,可以在任意 Linux 发行版本上应用:
PHP 运行期环境
具有 PHP 模块的 Apache web 服务器
PHP-MySQL 模块
Linux on POWER 发行版本默认会附带这些组件。配置很简单,在 phpMyAdmin 附带的文档中详细地进行了描述。 图 3 是在 Linux on POWER SLES 9 中运行的 phpMyAdmin 的截图。
图 3. phpMyAdmin
要获得更多资料并下载 phpMyAdmin,请访问 phpMyAdmin Web 站点。(参阅 参考资料。)
迁移 MySQL
如果使用前面提到的管理工具,迁移 MySQL 数据库非常简单,因为 MySQL 数据库表结构保存在文件中,您可以将它们备份和拷贝到其他系统。要获得更多资料,请参考 MySQL 文档。
创建 MySQL 数据库
为了介绍一些关键的 MySQL 概念以及一些您可以在 MySQL 中执行的基本任务,文章的这一节将讨论一个简单的数据库设计。
数据库设计
此示例研究了一个简单的数据库,它保持了对某个 IT specialists contracting company 日常活动的追踪。 图 4 是一个实体关系图(Entity Relational Diagram,ERD),给出了公司简化的数据需求及操作宏观视图。
图 4. IT Specialists contracting company 数据库
公司约定 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