首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | linux相关 | linux认证 | 下载中心 | 专题
oklinux
 系统管理:中文环境 系统管理 桌面应用 内核技术 Linux基础:安装配置 常用命令 经验技巧 软件应用 Linux数据库:Mysql POSTGRE
 网络管理:网络安全 网络应用 Linux服务器 编程开发:PHP CC++ Python Perl SHELL 嵌入式开发 | PHP基础 PHP技巧 PHP应用 PHP文摘
 首页 linux资讯动态 Linux专题 | 其他Unix Linux解决方案 硬件相关 Linux认证 企业应用 Apache | 相关下载:软路由 参考手册 开发工具
 → 当前位置:首页>linux相关>企业应用>正文

在Linux下飞翔的“火鸟”

OKLinux www.oklinux.cn 2003-01-01 来源:开放系统世界  ◇ 葛小明  会员收藏 游客收藏

  2000年7月,Borland(即现在的Inprise)公司公布了其数据库产品Interbase的源代码。Firebird数据库就是从该数据库中派生出来的。当时,Interbase是与客户/服务器版本的Delphi产品捆绑在一些销售的。现在,Interbase已经变成了一只开放源码中的“火鸟”。

  为什么要使用Firebird?

  也许有人会问,开放源码的数据库已经够多了,还需要其它的数据库吗?笔者认为,对于小型企业用户而言,现在的开放源码数据库有两点不足:要么太大(如MySQL、PostgreSQL);要么太小,并且缺乏功能和文档(如HypersonicSQL和McKoi)。在很多应用环境中,用户需要有一个大小适中且功能齐备的数据库。

  Firebird相对来说比较小,其RPM版本只有2.6MB。这使其可以称得上是理想的“嵌入式数据库”,可用于与其它应用程序服务器和应用程序捆绑。Firebird具有大部分成熟数据库所具有的功能,比如支持存储过程、SQL兼容等。如果用户有使用DB2或PostgreSQL的经验,就会发现Firebird与它们的语法非常相似,数据类型和数据处理方式也很类似。

  Firebird的设计思想是小型、快速和最小化的管理。这对于需要一个数据库用于存储数据,但又不想花太多时间来调整数据性能的开发人员很适用。实际上在很多情况下,我们并不需要存储程序或复杂的表之间的关联。这时会发现Firebird在大小和功能之间找到了一个理想的平衡点。

  安装Firebird

  我们可以从http://firebird.sourceforge.net/index.php下载Firebird,如图1所示:

  图1 极富个性的Firebird主页

  现在有两个版本的Firebird服务器软件可供下载,分别是Firebird Super Server和Firebird Classic Server。简单来说,二者的区别在于设计的方法不同。Super Server使用线程同时为多个客户连接提供服务,而Classic Server使用的则是Interbase的方法,采用为每个连接提供一个独立服务器进程的方式。如果想对二者的区别有更多的了解,可查看http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_ss_vs_classic。对于“嵌入式数据库”的用户,这两个版本之间没有太大的区别。从理论上讲,如果应用程序的用户很多,那么Super Server将是一个较好的选择。下面,笔者将以Super Server为例进行介绍(本例中下载安装的文件是FirebirdSS-1.0.2.908-1.i386.rpm)。该数据库只有2.5MB,并且对系统的要求也很低。事实上,只要硬件系统可以运行Linux,就完全可以运行这个数据库。

  本文中安装使用该数据库的环境是Red Hat 8.0。下面介绍安装过程。

  首先执行以下命令:

# echo localhost.localdomain >>/etc/hosts.equiv

  该命令将把localhost添加至可识别的服务器列表之中。切换至下载文件所在目录,运行下命令:

# rpm -ivh FirebirdSS-1.0.2.908-1.i386.rpm

  安装完成后将在/etc/init.d目录下创建一个启动脚本,该脚本在服务器启动时会自动启动Firebird。如果安装过程中遇到错误,请检查是否安装了ncurses4(5.0以上版本)和glibc(2.2以上版本),检查方法如下:

# rpm -qa |grep ncurses
ncurses-devel-5.2-28
ncurses-5.2-28
# rpm -qa |grep glibc
glibc-2.2.93-5
glibc-devel-2.2.93-5
glibc-kernheaders-2.4-7.20
glibc-common-2.2.93-5

  一般来说,缺省安装的Linux系统已经安装了ncurses4和glibc,因此要注意查看两个软件包的版本是否符合要求。

  Firebird还会在/opt目录下创建一个interbase目录,并且把可执行文件放在此处。我们需要让该数据库在全系统内可用,为此要编辑/etc/profile,并插入以下行:

export INTERBASE_HOME=/opt/interbase
export PATH=$PATH:$INTERBASE_HOME/bin

  保存文件并重新启动系统,检查Firebird是否正确启动。

  使用系统

  缺省的系统管理员账号的用户名是SYSDBA,缺省密码是masterkey。在使用过程中,笔者发现系统对用户名不区分大小写。用户可使用该账号来创建其它的用户。可用的系统管理工具有:

  ◆ gsec

  这是一个安全的系统程序,可以使用命令行的方式来创建、修改和删除数据库用户、改变密码等。必须以SYSDBA来运行gsec,以root身份调用并执行以下命令:

$ gsec -user sysdba -password masterkey

  将会出现一个GSEC>提示符,可以使用display命令显示目前的用户,如下所示:

GSEC> display
  user name     uid   gid     full name
-----------------------------------
SYSDBA                           0     0

  缺省的密码不安全,建议更改SYSDBA的密码。可使用以下命令来更改密码:

GSEC> modify SYSDBA -pw newpassword

  命令中的newpassword即新的密码。密码最好使用数字和字母的组合,并且经常更改。

  ◆ isql

  这是一个交互式SQL工具,类似于Oracle的SQL*Plus和Postgresql的psql命令。可以使用它来测试和运行SQL查询。Firebird自带一个名为EMPLOYEE的数据库实例,可以使用其测试SQL命令,代码如下:

# cd /opt/interbase/bin
# ./isql /opt/interbase/examples/employee.gdb
Database:  /opt/interbase/examples/employee.gdb
SQL>

  这将会连接到EMPLOYEE数据库并显示SQL>提示符。可以此处输入SQL命令进行查询(注意每行命令后的“;”号)。此外,由于一些与数据库相关的系统也会安装一个名为isql的工具,所以一定要切换到“/opt/interbase/bin”目录下运行isql工具。现在在SQL>提示符下输入以下命令:

SQL> SELECT emp_no, full_name, job_code, job_country FROM employee;

  将会显示以下内容:

EMP_NO FULL_NAME   JOB_CODE JOB_COUNTRY
======= =================== ======== 
2 Nelson, Robert         VP	USA
4 Young, Bruce	Eng	USA
5 Lambert, Kim 	Eng	USA
8 Johnson, Leslie	Mktg	USA
9 Forest, Phil	Mngr	USA
11 Weston, K. J. 	SRep	USA
12 Lee, Terri	Admin	USA
14 Hall, Stewart	Finan	USA
15 Young, Katherine	Mngr	USA
20 Papadopoulos, Chris	Mngr	USA
24 Fisher, Pete 	Eng	USA
28 Bennet, Ann	Admin	England
29 De Souza, Roger	Eng	USA
34 Baldwin, Janet	Sales	USA
36 Reeves, Roger 	Sales	England
37 Stansbury, Willie 	Eng	England
44 Phong, Leslie 	Eng	USA
45 Ramanathan, Ashok	Eng	USA
46 Steadman, Walter	CFO	USA
52 Nordstrom, Carol	PRel	USA

  如果想查看数据库中的所有表,输入以下命令:

SQL> SHOW TABLES;

  将显示以下信息:

COUNTRY	CUSTOMER
DEPARTMENT	EMPLOYEE
EMPLOYEE_PROJECT	JOB
PHONE_LIST	PROJECT
PROJ_DEPT_BUDGET	SALARY_HISTORY                    
SALES

  要从isql中退出,只需输入“quit;”即可。

  创建自己的数据库

  到目前为止,我们已经以SYSDBA的身份执行了一些命令,并且查看了一些数据库范例。接下来创建一个数据库,并创建一个有权查看和更改数据库的用户,然后在操作系统中进行数据库测试。

  创建数据库需要使用isql工具。Firebird使用离散的形式存储文件。作为一种惯例,文件扩展名一般是.gdb,用户也可以用任何扩展名来存储文件。先以SYSDBA的身份来创建一个数据库,然后以test为名将其存储在$INTERBASE_HOME目录之下。

  首先在“/opt/interbase”目录下创建一个名为“testdb”的目录(注意要为其分配适当的权限)。切换至该目录,并以不带参数的情况下启动isql。然后使用CREATE DATABASE命令创建一个数据库,代码如下:

SQL> CREATE DATABASE 'firstdb.gdb' USER 'sysdba' PASSWORD 'masterkey';

  该命令将在当前目录下创建一个名为firstdb.gdb的文件。该数据库归SYSDBA所有。下面来创建一个基本的销售表并且输入数据,代码如下:

SQL> CREATE TABLE sales_catalog (
CON> item_id varchar(10) not null primary key,
CON> item_name varchar(40) not null,
CON> item_desc varchar(50)
CON> );
SQL> INSERT INTO sales_catalog VALUES('001','Aluminium Wok',
    'Chinese wok used for stir fry dishes');
SQL> INSERT INTO sales_catalog VALUES('002', 
    'Chopsticks extra-long', '60-cm chopsticks');
SQL> INSERT INTO sales_catalog VALUES('003', 
    'Claypot', 'Pot for stews');
SQL> INSERT INTO sales_catalog VALUES('004', 
    'Charcoal Stove', 'For claypot dishes');
SQL> SELECT * FROM sales_catalog;
ITEM_ID	ITEM_NAME	ITEM_DESC
=============================================
001	Aluminium Wok	Chinese wok used 	for stir fry dishes
002	Chopsticks extra-long	60-cm chopsticks
003	Claypot	Pot for stews
004	Charcoal Stove	For claypot dishes

  添加用户

  不要使用系统管理员账号SYSDBA创建所有的数据库。有些时候,比如在运行多个属于不同用户和组的数据库时,可能希望每个用户和组都有各自的数据库,并有权查看。另外一种情形需要创建一个代理用户,可以执行所有数据库操作,但其权限都低于SYSDBA。进行这一操作时,需要使用gsec工具。例如,创建一个用户名为TestAdmin、密码为testadmin的账户(注意,密码的位数只能是8位),并且赋予其查看、修改和删除数据库firstdb.gdb的权限。使用以下命令来完成这些功能:

$ gsec -user SYSDBA -password masterkey
GSEC> add TestAdmin -pw testadmin -fname FirstDB -lname Administrator
Warning - maximum 8 significant bytes of password used

  打开数据库,为数据库创建一个系统管理角色,并为其分配适当的权限,然后运行以下代码:

$ isql firstdb.gdb -user SYSDBA -password masterkey
Database:  firstdb.gdb, User: SYSDBA
SQL> GRANT SELECT, UPDATE, INSERT, DELETE ON sales_catalog TO administrator;
SQL> GRANT administrator TO TestAdmin;
SQL> quit;

  将TestAdmin加至其中。接下来测试数据库。

  测试数据库

  首先退出gsec和isql,以TestAdmin的身份登录至数据库firstdb.gdb,并运行以下SQL语句:

SQL> DELETE FROM sales_catalog;
SQL> INSERT INTO sales_catalog VALUES('001', 'Aluminum Wok', 'Chinese wok');
SQL> INSERT INTO sales_catalog VALUES('002', 'Microwave Oven', '300W Microwave oven');
SQL> INSERT INTO sales_catalog VALUES('003', 'Chopsticks extra-long', '60cm chopsticks');
SQL> SELECT * FROM sales_catalog;
ITEM_ID ITEM_NAME ITEM_DESC                           
===========================================
001	Aluminum Wok	Chinese wok
002	Microwave Oven	300W Microwave oven
003	Chopsticks extra-long	60cm chopsticks

  如果没有出现问题,就说明配置已经完全成功。现在,这只Linux上的火鸟可以展翅飞翔了。

(责任编辑:西门吹风
上一篇:“神舟”应用桌面Linux   下一篇:用vsftpd架设安全的FTP服务器
收藏于收藏夹】 【评论】 【推荐】 【投稿】 【打印】 【关闭

相关文章
·用vsftpd架设安全的FTP服务器
·“神舟”应用桌面Linux
·用RedHat打造安全代理服务器(下)
·用Sypma管理邮件列表
·用RedHat打造安全高效的代理服务器
·应用数字证书 保证交易安全
·构架Linux环境下Java开发环境
·Redhat局域网安装的解决办法
·Linux系统响应速度性能改进实例
·Redhat局域网安装的解决办法
发表评论
密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。)
站内搜索
阅读排行榜
·中小型企业级服务器配置技
·Bake-Off: 4 Linux Deskto
·Linux网络安全策略和保护
·Linux环境下双机(多机)自
·Linux在构建绿色校园网中
·构架Linux环境下Java开发
·NC下RedOffice多用户使用
·网络计算机典型应用领域
·威盛携手慧智 组成NC新联
·在Linux上搭建BBS服务器
最新文章
·在Linux上搭建BBS服务器
·数据库竞争把握Linux
·Linux系统响应速度性能改
·构架Linux环境下Java开发
·应用数字证书 保证交易安
·用Sypma管理邮件列表
·用vsftpd架设安全的FTP服
·“神舟”应用桌面Linux
·用RedHat打造安全代理服务
·用RedHat打造安全高效的代
·Redhat局域网安装的解决办
·Redhat局域网安装的解决办
·Linux代理服务全攻略
·J2EE连接器实现企业应用
·J2EE开发Web服务商务应用

设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2007 All rights reserved OKLinux.Cn 版权所有
合作联系 QQ:18743986 Email:arlan8005#163.com