当第一次有人建议我为LinuxPlanet写数据库管理系统的比较时我摇了摇头我从来没做过这样的比较但是后来我想有何不可?也许一种新鲜天真的方法并不坏因此就有本文一种全新眼光看缤纷的Linux数据库世界本文共部分
在这里比较的数据库管理器是免费的或有便宜的许可费并且他们可在所有层次的Linux系统上运行从低端硬件到高端多处理器服务器他们已经广泛地应用世界范围的生产系统上为了比较我把我自己放在了运行典型的Linux机器的境地每天都由 DBMS提供动力
我将考察
mSQL
MySQL
PostgreSQL
我将以一个这个数据库系统的安装和配置的讨论开始然后我将在第部分继续通过用SQL的一个小数据库的设计指出我碰到的困难和试图使数据库系统接受的差异我也将解释一个程序的编码它在数据库上执行各种的真实操作例如增加数据并产生报表同时讨论数据库在处理上的各种差别这个客户程序针对所有个数据库系统用C语言实现为此我必须不仅学习所有系统SQL API还有SQL如果没有其他东西这将肯定饶有兴趣地看下去
第三部分将包含一些真实的基准测试作为奖赏我已经有了在Linux 新闻组上款观看关于数据库的基准测试结果没完没了的争论的保持怀疑的乐趣因此我将只测试客户程序做随机事情的时间性能既在理想的条件下运行跑又通过多个并发进程的时候那时我将已经涉及DBMS之间的大多数差别因此你应该有了关于他们的强项和弱项的一个良好概念
最后的部分将是你所期待的一切结论覆盖的特征实现在DBMS之间的API和性能差别
但是现在准备深入数据库管理的王国的探险吧
获得并安装 PostgreSQL
位于PostgreSQL 网站的软件小节有一个FTP和HTTP镜像网站的列表可从他们下载分发也有定购DBMS CD的选择构造并安装它是一个多步骤过程
首先如果你想要建立Postgresql的Perl语言联编(binding)在你系统上的Perl 可执行文件必须已知是perl的名字通常这意味着你需要做一个符号连接
也许要做的最重要的事情是创造一个postgres用户在我的系统上这个命令可运行
useradd c PostgreSQL Administrator d /opt/postgresql g users postgres
在其他系统上命令可能有所不同注意我假定postgres是在users组里你可能比较喜欢给数据库主管一个它自己的组
如果不另外说明所有其它安装步骤需要以用户postgres身份来做
解开PostgreSQL下载包并进入源代码目录树
tar xvzf postgresqltargz cd postgresql
用root用户创建PostgreSQL目录并把交给postgres用户
mkdir /opt/pgsql chown postgresusers /opt/pgsql
进入源代码目录并配置软件包我用下列选择
/configure prefix=/opt/pgsql withperl
进行构造和安装过程
cd /doc make install cd /src make all make install
现在是执行一些附加的系统配置的时间了
作为root将下行
/opt/pgsql/lib
加入/etc/nf并运行ldconfig
安装Perl联编当用root登录后
cd interface/perl make install
设置postgres账号将下列行增加到profile文件中
PATH=$PATH:/opt/pgsql/bin MANPATH=$MANPATH:/opt/pgsql/man PGLIB=/opt/pgsql/lib PGDATA=/opt/pgsql/data export PATH MANPATH PGLIB PGDATA LC_COLLATE=C LC_CTYPE=C export LC_COLLATE LC_CTYPE
最后行对init过程和也许某些测试是必要的试对实际的用户他们当然应该设置到适当的现场但是每个使用 PostgreSQL的人至少需要有PGLIB和PGDATA的设置
Source profile文件
source profile
运行后期安装
initdb
获得并安装 MySQL
MySQL的最新版本可从MySQL下载页有很多可选择的镜像站点你需要执行下列步骤
解开包并进入源代码目录树
tar xvzf mysqlatargz cd mysqla
配置软件包我使用下列选项目
/configure prefix=/opt/mysql
构造它
make
安装它用root用户
make install
然后你需要配置安装
作为root用户创建授权数据库表
scripts/mysql_install_db
作为root启动服务器
/opt/mysql/bin/safe_mysqld &
作为root创建mysql用户
useradd c MySQL Administrator d /opt/mysql g users mysql
作为root把安装树属权赋给mysql用户
chown R mysqlusers /opt/mysql
获得并安装 mSQL
下载mSQL不比下载PostgreSQL或MySQL那样简单 但是其分发更小从Hughes技术网页开始并且寻找更进一步的指令为了下载mSQL首先需要在该站点注册并且通过一个基于CGI的下载系统如有必要允许你在一些镜像站点间选择构造和安装的mSQL的步骤如下
解开包并进入源代码目录
tar xvzf msqltargz cd msql
产生目标定义
make target
进入你平台的目标目录
cd targets/Linuxi
配置软件包
/setup
编辑sitemm我将安装路径改成/opt/msql
构造它
make all
作为root 用户安装它
make install
在构造和安装的mSQL以后你需要配置它
作为root创建msql用户
useradd c mSQL Administrator d /opt/msql g users msql
作为root把目录属权交给msql用户
chown R msqlusers /opt/msql