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上的火鸟可以展翅飞翔了。

全文结束

Firebird FOR LINUX相关推荐

  1. Firebird 备份工具 nbackup 的

    nbackup介绍 nbackup是Firebird 2.0新带来的备份工具.它提供了gbak-Firebird以前就有的备份工具-所没有的能力-但是并不取代后者.两个程序都有其长处和短处:他们在一定 ...

  2. Firebird的备份工具(nbackup)介绍

    Firebird的备份工具(nbackup)介绍 nbackup介绍 nbackup是Firebird 2.0新带来的备份工具.它提供了gbak-Firebird以前就有的备份工具-所没有的能力-但是 ...

  3. Firebird与MySQL: 钟为谁鸣

    本文来自论坛:http://www.firebird.net.cn/forum_view.asp?forum_id=3&view_id=1339&page=1 Firebird与MyS ...

  4. 火鸟数据库 linux,firebird数据库

    Firebird是一个跨平台的关系数据库系统,该系统使用起来十分方便.安全.可靠,操作和维护起来也是十分简单,且兼容性十分强大,目前能够运行在Windows.linux和各种Unix操作系统上,它既能 ...

  5. Linux下的FireBird安装

    由于需要调研了一下linux下的Firebird数据库. 第一次接触Firebird是在前年,当时的版本是 1.5.3 ,都是在Windows平台下开发的. 记得当初很高兴的发现2.0正式版即将发布的 ...

  6. 本地数据源:使用firebird数据库

    我用它来做本地数据源.本来想用wilson的XmlDbClient的,不过资料很少.就选用了firebird.因为firebird数据库可以内嵌(Embed)到应用程序中. firebird数据库,源 ...

  7. Kali Linux渗透基础知识整理(三):漏洞利用

    漏洞利用阶段利用已获得的信息和各种攻击手段实施渗透.网络应用程序漏洞诊断项目的加密通信漏洞诊断是必须执行的.顾名思义,利用漏洞,达到攻击的目的. Metasploit Framework rdeskt ...

  8. Linux主要shell命令详解

    shell是用户和Linux操作系统之间的接口.Linux中有多种shell,其中缺省使用的是Bash.本章讲述了shell的工作原理,shell的种类,shell的一般操作及Bash的特性. 什么是 ...

  9. Kali Linux 下渗透测试 | 3389 批量爆破神器 | hydra | 内网渗透测试

    kali linux 下渗透测试,3389 批量爆破神器 hydra -M target.txt rdp -L userlist.txt -P passwordlist.txt -V root@kal ...

最新文章

  1. Android 实用工具Hierarchy Viewer实战
  2. Flash存储控制器组成!(flash)
  3. keepalived 多个应用_Keepalived与LVS部署多个服务
  4. android 中ImageView的scaletype属性
  5. OJ1062: 最大公约数(C语言)
  6. 基于 HTML5 WebGL 的 3D 渲染引擎构建工厂运作系统
  7. 95-230-022-源码-WordCount走读-OperatorChain
  8. echarts中国地图描绘
  9. 使用jquery 给span 赋值
  10. Mac Mysql 基本操作命令
  11. 08Oracle Database 完整性约束
  12. php混淆解密,关于php混淆加密解密详解
  13. 卷一 内核源代码分析 第二章 异常 2.2.1 cortex A9多核处理器的中断控制器GIC---2.2.2 Mt6577的中断体系 图书试读版-请勿转载
  14. JavaWeb-文件上传和下载
  15. 访问者模式Visitor
  16. 显示空间——字符显示之矢量文字
  17. GeoGebra 数列极限
  18. 计算机一级操作详解,计算机一级操作详解
  19. 做一个展示型企业网站要多少钱
  20. cgm 转jpg java_获取图片,音频,视频,压缩包文件类型的工具类

热门文章

  1. 雪碧图 sprite
  2. 如何关闭微信朋友圈的广告?
  3. 88e111驱动linux例子下载,佳能 Alaska GbE 88E1118R 驱动程序下载-更新佳能软件(收发器)...
  4. 基于Node.js的毕业设计-求职招聘APP
  5. UI自动化脚本运行找不到元素解决方案
  6. 计算机辅助管理 实践,计算机辅助设计实践学指导书.doc
  7. mkdocs-material - 中文搜索支持
  8. 机器学习之特征工程--特征预处理(上)
  9. 海尔CMO曾庆俐:电商的互联网转型之路
  10. ActiveX 使用gdi+ 1.1 绕过DLL HOOL和winsxs