`

Linux下的FireBird 数据库

阅读更多

Linux下的FireBird 数据库

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

  为什么要使用Firebird?

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

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

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

  安装Firebird
 我们可以从http://firebird.sourceforge.net/index.php下载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.5.2.4731-0.i686.rpm)。该数据库只有3.2MB,并且 对系统的要求也很低。事实上,只要硬件系统可以运行Linux,就完全可以运行这个数据库。

  本文中安装使用该数据库的环境是Fedora Core 3。下面介绍安装过程。
  首先执行以下命令:

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

该命令将把localhost添加至可识别的服务器列表之中(注意:如果hosts.equiv中已经包含localhost.localdomain此命令不需要执行)。切换至下载文件所在目录,运行下命令:

# rpm -ivh FirebirdSS-1.5.2.4731-0.i686.rpm

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

# rpm -qa |grep ncurses
ncurses-devel-5.4-13
ncurses-5.4-13
# rpm -qa |grep glibc
glibc-devel-2.3.5-0.fc3.1
glibc-kernheaders-2.4-9.1.87
glibc-common-2.3.5-0.fc3.1
glibc-2.3.5-0.fc3.1
glibc-headers-2.3.5-0.fc3.1

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

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

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

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

  缺省的系统管理员账号的用户名sysdba和密码在/opt/firebird/SYSDBA.password中保存。用户可使用该账号来创建其它的用户。可用的系统管理工具有:
  ◆ 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/firebird/bin
# ./isql /opt/firebird/examples/employee.gdb
Database: /opt/firebird/examples/employee.gdb
SQL>

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

SQL> show tables;

  将会显示以下内容:

COUNTRY CUSTOMER
DEPARTMENT EMPLOYEE
EMPLOYEE_PROJECT JOB
PHONE_LIST PROJECT
PROJ_DEPT_BUDGET SALARY_HISTORY
SALES

  创建自己的数据库

  到目前为止,我们已经以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平台下运用Lazarus Firebird开发数据库应用程序.pdf

    Linux平台下运用Lazarus Firebird开发数据库应用程序.pdf Linux操作系统作为目前最流行的开源操作系统之一,在数据库应用程序开发中扮演着重要角色。为了满足数据库应用程序的开发需求,需要选择合适的开发工具和...

    关于 Firebird 数据库 的基础应用

    - **SqlHelper**:SqlHelper 是 .NET 平台下用于操作数据库的辅助类库,可简化 Firebird 数据库的 CRUD 操作。 4. **ADO.NET 支持** .NET 开发者可以通过 ADO.NET 连接和操作 Firebird 数据库,使用 `System.Data...

    FireBird数据库

    **FireBird数据库详解** FireBird数据库是一款开源的关系型数据库管理系统,以其轻量级、高效、稳定和易用性而受到广大开发者的喜爱。它适用于小型到中型企业应用,尤其适合那些对资源占用有限但需要高性能数据库...

    FireBird 数据库管理工具

    在本篇文章中,我们将深入探讨FireBird数据库管理工具的核心特性以及如何有效地利用这些工具进行数据库操作。 一、FireBird数据库系统基础 FireBird数据库源于InterBase,但在2000年成为开源项目后,它不断发展和...

    超好用的FireBird数据库工具

    FireBird数据库是一款开源、免费的关系型数据库管理系统,它以其高效能、稳定性以及跨平台的特性在IT领域中受到广泛欢迎。对于开发人员和数据库管理员来说,有效地管理和维护FireBird数据库至关重要,而“超好用的...

    FireBird数据库开发参考手册

    FireBird数据库是一种开源的关系型数据库系统,以其高性能、稳定性以及与其他数据库产品相比的轻量级而受到众多开发者的青睐。它被广泛应用于需要高效、可扩展和安全的数据存储解决方案中。本手册提供的信息可以帮助...

    FireBird数据库使用指南.doc

    FireBird数据库是一个强大的开源关系数据库管理系统,源自Borland公司的Interbase 6.0,并且在2000年成为一个独立的开源项目。它具备高度的跨平台能力,可在Windows、Linux、Unix等多种操作系统上运行,同时满足SQL-...

    php连接firebird2.1数据库的代码-亲测可用

    在PHP中连接Firebird 2.1数据库是一个常见的任务,特别是在需要将PHP应用程序与Firebird数据库集成时。Firebird是一款开源、多用户的关系型数据库管理系统,具有高度的可移植性和性能。以下是一些关于如何使用PHP...

    数据库安装FireBird及FBControl、FlameRobin等工具.rar

    数据库安装FireBird及FBControl、FlameRobin等工具....一个firebird数据库服务器能够管理多个独立的数据库,每一个数据库同时可支持多个客户端连结。总之:它是一个开源的,强大的,可以自由使用的数据库(即使是商业上

    Firebird数据库中文版

    一个firebird数据库服务器能够管理多个独立的数据库,每一个数据库同时可支持多个客户端连结。 关键特性:支持原子性,并发性,隔离性等概念。 MGA:支持事务的多个版本功能, 存储过程: 使用PSQL(Procedure SQL),...

    firebird数据库管理

    总的来说,通过使用这个简单的查询分析器,Firebird数据库的管理工作将变得更加简单和高效,无论是数据库的创建、维护,还是复杂的查询操作,都能在友好的图形界面下完成,从而提升了IT专业人员的工作效率。

    火鸟Firebird数据库的中文参考资料及编程指南合集

    火鸟Firebird数据库是一款开源的关系型数据库管理系统,源自IBM的InterBase,并且在全球范围内得到了广泛的应用。本资源合集提供了全面的中文参考资料和编程指南,旨在帮助中文用户更好地理解和掌握这款强大的数据库...

    firebird数据库&管理工具&delphi用数据库控件(支持firebird)

    Firebird数据库是一款开源、免费的关系型数据库管理系统,它以其稳定性、高效性和安全性赢得了广大开发者和企业的青睐。在本文中,我们将深入探讨Firebird数据库的核心特性、管理工具以及如何在Delphi开发环境中使用...

    FireBird数据库使用指南

    FireBird数据库是一个强大的开源关系型数据库系统,支持多种操作系统,如Windows、Linux和Unix。源自Borland公司的Interbase6.0,Firebird在2000年成为一个独立的开源项目,采用Mozilla Public License v.1.1许可证...

    JDBC连接firebird数据库+驱动jar包

    标题 "JDBC连接firebird数据库+驱动jar包" 涉及到的主要知识点是Java数据库连接(JDBC)以及如何使用特定的驱动程序连接到Firebird数据库。在Java编程环境中,JDBC是一种标准接口,允许Java应用程序与各种类型的...

    FireBird数据库使用指南.pdf

    Firebird数据库使用指南 Firebird是跨平台的关系数据库管理系统,可以运行在Windows、Linux和各种Unix操作系统上,提供了大部分SQL-99标准的功能。它既可以作为多用户环境下的数据库服务器运行,也提供嵌入式数据库...

    Node.js操作Firebird数据库教程_.docx

    【Node.js操作Firebird数据库教程】 Node.js是一个流行的JavaScript运行环境,它允许开发者在服务器端执行JavaScript代码。在本文中,我们将深入探讨如何利用Node.js与Firebird数据库进行交互。Firebird是一个开源...

    Linux系统设置php_pdo扩展(Firebird为例,其他也适用)

    在Linux环境下,为了实现PHP与Firebird数据库的交互,首先需要确保Firebird数据库正确安装。由于Firebird在某些情况下不能直接通过软件包管理器安装,因此需要手动下载并安装相应的Firebird数据库压缩包。 **安装...

    FirebirdMaestro(火鸟数据库可视化工具)

    火鸟数据库(Firebird)是一款开源的关系型数据库管理系统,具有高度的稳定性和可扩展性。它支持多种操作系统,包括Windows、Linux、macOS等,且提供了丰富的API和SQL标准支持,适用于各种开发环境。火鸟数据库以其...

Global site tag (gtag.js) - Google Analytics