Firebird数据库的安装配置与使用

【温馨提示:本文档所有操作均在root用户下进行】

一、安装


1、rpm包方式

我选用的安装方式是 使用rpm包安装

执行以下命令进行安装:

$ rpm -ivh FirebirdSS-2.5.9.27139-0.amd64.rpm --force --nodeps

不加–force --nodeps会出现 /bin/sh is needed by xxxxxx(安装包的名字)

安装成功后查看firebird进程

安装位置默认会在/opt/firebird

安装包的详细信息显示是无法重定向安装的【Relocations : (not relocatable)】

$ ps aux | grep firebird
firebird   4684  0.0  0.0  35396   408 ?        S    Oct15   0:00 /opt/firebird/bin/fbguard -pidfile /var/run/firebird/firebird.pid -daemon -forever
firebird   4686  0.0  0.6 362008 12592 ?        Sl   Oct15   0:00 /opt/firebird/bin/fbserver

firebird的安装位置默认在/opt/firebird,进入文件夹

$ cd /opt/firebird
$ ls
aliases.conf  examples       firebird.log  IDPLicense.txt  lib      security2.fdb
bin           fb_guard       firebird.msg  include         misc     SYSDBA.password
de_DE.msg     fbtrace.conf   fr_FR.msg     intl            plugins  UDF
doc           firebird.conf  help          IPLicense.txt   README   WhatsNew

2、tar包方式

执行以下命令解压tar包:

$ tar -zxvf FirebirdSS-2.5.9.27139-0.amd64.tar.gz
# 进入解压后的文件夹
$ cd FirebirdSS-2.5.9.27139-0.amd64
# 使用install.sh进行安装
$ ./install.shFirebird super 2.5.9.27139-0.amd64 InstallationPress Enter to start installation or ^C to abort # 键入回车开始安装或者Ctrl+C中止安装
Extracting install data
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
update-rc.d: warning: start runlevel arguments (2 3 5) do not match firebird Default-Start values (2 3 4 5)
Starting Firebird server: Please enter new password for SYSDBA user: root123 # 此处设置用户sysdba的密码
Install completed

安装成功后查看firebird进程

$ ps aux | grep firebird
firebird 18132  0.0  0.0  35388   412 ?        S    16:54   0:00 /opt/firebird/bin/fbguard -pidfile /var/run/firebird/firebird.pid -daemon -forever
firebird 18133  0.0  0.0 230664 11048 ?        Sl   16:54   0:00 /opt/firebird/bin/fbserver

firebird的安装位置默认在/opt/firebird,进入文件夹

$ cd /opt/firebird
$ ls
aliases.conf  examples       firebird.log  IDPLicense.txt  lib      security2.fdb
bin           fb_guard       firebird.msg  include         misc     UDF
de_DE.msg     fbtrace.conf   fr_FR.msg     intl            plugins  WhatsNew
doc           firebird.conf  help          IPLicense.txt   README
# 由于tar包安装方式在安装时已经设置了sysdba用户的密码,所以这里就没有SYSDBA.password文件了

二、配置


将安装目录加入/etc/profile配置文件,以供firebird全系统可用

$ vi /etc/profile
# 在/etc/profile配置文件中加入以下字段
export FIREBIRD_HOME=/opt/firebird
export PATH=$PATH:$FIREBIRD_HOME/bin
# 加入完成后保存文件,并执行配置文件
$ source /etc/profile

查看缺省登录账户和密码(rpm安装方式)

cat /opt/firebird/SYSDBA.password

会展示以下内容,ISC_USER为用户,ISC_PASSWD为密码

# Firebird generated password for user SYSDBA is:ISC_USER=sysdba
ISC_PASSWD=4FCEB54C# generated on koal at time Fri Oct 15 07:00:16 UTC 2021# Your password can be changed to a more suitable one using the
# /opt/firebird/bin/gsec utility.

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

通过以下命令进入安全系统,以后续进行修改密码(若没有将firebird加入到配置文件中,则可以通过到安装目录的bin文件夹下./gsec -user sysdba -password 4FCEB54C

gsec -user sysdba -password 4FCEB54C

将会出现一个 GSEC> 的提示符,可以使用display命令显示当前的用户

GSEC> displayuser name                    uid   gid admin     full name
-------------------------------------------------------------------------------------SYSDBA                        0     0          Sql Server Administrator

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

GSEC> modify SYSDBA -pw root123

命令中的root123即为新的密码,可以按照自己的需求来自行设定

三、使用


1、测试运行

◆ isql:
  这是一个交互式SQL工具,类似于Oracle的SQL*Plus和Postgresql的psql命令。可以使用它来测试和运行SQL查询。

firebird自带一个名为employee.fdb的数据库实例,可以使用其测试SQL命令,命令如下:

# 由于一些与数据库相关的系统也会安装名为isql的工具,所以尽量进入到安装目录的bin文件夹中运行isql工具
cd /opt/firebird/bin
./isql /opt/firebird/examples/empbuild/employee.fdb -u sysdba -p root123
# 会显示以下内容,表示连接到了employee数据库
Database:  /opt/firebird/examples/empbuild/employee.fdb, User: sysdba
SQL>

注意:employee.fdb每个版本的存放位置不太相同,1.5.2在/opt/firebird/examples/目录下,2.5.9在/opt/firebird/examples/empbuild/,自行在examples文件夹中寻找一下

使用show tables命令可以查看当前所有表,显示以下内容:

SQL> show tables;COUNTRY                                CUSTOMERDEPARTMENT                             EMPLOYEEEMPLOYEE_PROJECT                       JOBPROJECT                                PROJ_DEPT_BUDGETSALARY_HISTORY                         SALESSQL>

2、创建数据库

可以使用以下两种方式进行创建数据库

(1)打开isql工具时就指明用户

$ isql -user sysdba -password root123
# 会显示一下信息
Use CONNECT or CREATE DATABASE to specify a database
SQL>
# 输入以下SQL语句创建数据库
SQL> CREATE DATABASE 'firstdb.fdb';
SQL>
# 没有任何响应就说明创建成功

(2)创建数据库时指明用户

$ isql
# 会显示一下信息
Use CONNECT or CREATE DATABASE to specify a database
SQL> CREATE DATABASE 'firstdb.fdb' USER 'sysdba' PASSWORD 'root123';
SQL>
# 没有任何响应就说明创建成功,该数据库归sysdba所有
# 下面创建一个表并插入数据
$ isql firstdb.fdb -user sysdba -password root123
Database:  firstdb.fdb, User: 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', '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       SQL>

3、添加用户并分配权限

(1)创建用户:使用gsec工具创建用户LiuYu

创建用户的语句格式为:[add 用户名 -pw 密码 -fname 姓 -lname 名]

$ gsec -user sysdba -password root123
# 进入gsec工具输入以下语句创建用户
GSEC> add LiuYu -pw root123 -fname Liu -lname Yu
GSEC>
# 没有任何提示,表示成功;输入以下语句查看当前所有用户
GSEC> displayuser name                    uid   gid admin     full name
-------------------------------------------------------------------------------
SYSDBA                              0     0           Sql Server Administrator
TESTADMIN                           0     0           FirstDB  Administrator
MASTERYI                            0     0           Master  Yi
LIUYU                               0     0           Liu  Yu
GSEC>

(2)分配权限:使用isql工具给指定用户分配权限

分配权限语句格式:GRANT 权限 ON 对象 TO 用户 [with grant option]

权限:SELECT、DELETE、UPDATE、INSERT、ALL

对象:表/视图名

用户:指定的用户,PUBLIC代表所有

with grant option:可选项——让该名使用者拥有指定使用者的权限

撤销权限语句格式:REVOKE 权限 ON 对象 FROM 用户

$ isql firstdb.fdb -user sysdba -password root123
# 进入isql工具使用指定数据库firstdb.fdb
# 输入以下语句给指定用户分配指定表或视图的权限
SQL> GRANT SELECT,UPDATE,INSERT,DELETE ON sales_catalog TO LiuYu;
SQL> quit;
# 没有提示表示语句执行成功,接下来使用新建用户操作firstdb.fdb试验一下权限是否已经分配
$ isql firstdb.fdb -user LiuYu -password root123
Database:  firstdb.fdb, User: LiuYu
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             004        What is this                             762mm ammo                 SQL> DELETE FROM sales_catalog;
SQL> INSERT INTO sales_catalog VALUES('666', 'Lucky Dog', 'You are so lucky');
SQL> SELECT * FROM sales_catalog;ITEM_ID    ITEM_NAME                                ITEM_DESC
=============================================================================
001        Lucky Dog                                You are so lucky        SQL>

四、报错


在创建数据库的过程中很有可能出现以下报错:

1、若不指明用户则会出现以下报错,意思就是未定义用户名和密码

Statement failed, SQLSTATE = 28000
Your user name and password are not defined. Ask your database administrator to set up a Firebird login.

只需要在创建数据库时指明用户即可,上面的两种方式都可以。

2、在创建数据库的过程中很有可能出现以下报错

Statement failed, SQLSTATE = 08001
I/O error during “open O_CREAT” operation for file “/opt/firebird/examples/firstdb.fdb”
-Error while trying to create file
-Permission denied

这个是因为其他用户对examples这个文件夹没有写的权限,所以无法创建文件

可以考虑新建一个文件夹作为今后数据库存储的位置,将这个文件夹的权限更改为所有用户可读写

$ cd /opt/firebird
$ mkdir db
# 给db文件夹 添加其他用户的写权限
$ chmod o+w db/
# 给db文件夹 添加所有用户的读、写、执行权限
$ chmod a+rwx db/

之后再往db文件夹创建数据库就不会报错了

猜测(未验证,仅为个人猜想):

​ 用户firebird是在安装firebird之后被添加,由于安装时必须使用root权限,firebird的大部分文件的拥有者都为root,小部分文件的拥有者为firebird。

​ 个人认为可能是firebird在创建数据库时使用的是firebird用户,若向拥有者为firebird的文件夹中创建文件应该是没有问题的,而在向拥有者为root的文件夹中写入文件的时候,要看此文件夹对其他用户(也就是实际创建数据库的用户)的写权限是否开启。

Firebird数据库的安装配置与使用相关推荐

  1. oracle本地没装 配置,数据库--oracle安装配置(本地安装的步骤及各种问题解决方案)...

    "监听程序未启动"一般不会出现这种情况,可以在桌面左下角右键-->计算机管理-->服务和应用程序-->服务 查看OracleOraDb11g_home1TNSLi ...

  2. Linux下数据库的安装配置、数据库C程序连接

    一.数据库的安装和配置 数据库的安装 配置 (1)先查看数据库状态(service mysql status),如果没有启动,执行启动命令(service mysql start) (2)mysql ...

  3. Firebird数据库的安装及使用

    安装数据库,安装录入假设为D:\Program Files\Firebird\Firebird_2_5,安装完成后用管理员身份打开CMD窗口,切换到D:\Program Files\Firebird\ ...

  4. 测试linux mongodb数据库开启,安装配置MongoDB数据库

    安装配置MongoDB数据库 实验环境: 系统环境:rhel6 x64 selinux and iptables disabled 一.安装MongoDB [root@server1 ~]# ls m ...

  5. nextcloud如何填写数据库_NextCloud安装配置

    NextCloud安装配置 Apr 10, 2019 Eric Guo    1293 摘要:在CentOS 7服务器上安装示例 在本安装教程中,我们将部署CentOS 7.5,PHP 7.2,Mar ...

  6. python3 [爬虫入门实战]爬虫之mongoDB数据库的安装配置与可视化

    从安装过程到可视化工具可查看数据信息,历时两天,昨天坐了一天的火车,今天早上才到的青岛–> 来放松心情. 前天说是要学习如何使用mongoDB的链接与安装. 到今天过去了将一天, 不过还是在函兮 ...

  7. 数据库-MYSQL安装配置和删除

    * 课程回顾:* 完成注册和登陆的功能.* 准备的工作* 技术.开源jar包* 开发的功能使用MVC模式* C:控制层(接收请求和从客户端发送过来的参数) * 接收参数(request对象) * 为了 ...

  8. oracle集群数据库事务配置,在 .NET中使用Oracle数据库事务-安装配置-Oracle频道-中国IT实验室...

    在本文中,您将了解到如何在 Visual Basic .NET (VB.NET) 和 Visual .NET () 中使用数据库事务.具体来讲,您将系统学习数据库事务.在 .NET 程序中使用 Tra ...

  9. redis数据库的安装配置

    redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多,包括strin ...

最新文章

  1. Web测试需要了解的知识
  2. R语言str_flatten函数通过自定义字符连接(concatenate)字符串向量中的字符串
  3. 【问题记录】raise IndexError(‘index {} is out of range‘.format(idx)) index 0 is out of range
  4. 高斯粒子滤波matlab,粒子滤波(Particle filter)matlab实现 | 学步园
  5. 如何在 Asp.Net Core 中对请求进行限流
  6. 面向数据自治开放的数据盒模型
  7. 二、Linxu的目录结构
  8. 一种简单实用的 AjaxPro 调试/错误处理方式
  9. SpaceBase – 基于 Sass 的响应式 CSS 框架
  10. String s =new String()分析堆与栈
  11. 绝了!kafka权威指南
  12. 10.6 全源(All pairs)负权Johnson算法
  13. stm32内部基准电压
  14. python查找单词的位置_Python实现单词查询文件查找
  15. 转载-常用邮箱SMTP服务器地址大全
  16. C语言用数组模拟实现栈(LIFO)
  17. 【欧拉猜想】是否有无穷多个不可约分的正整数解
  18. 【JS】问题——解决JS文件页面更新不生效问题
  19. 直播预告 | 双十一电商风控怎么破,看这场直播就对了!
  20. 移动硬盘和电脑内置硬盘使用时的区别

热门文章

  1. js使用BOS Uploader上传视频到百度云
  2. 为什么说Python是人工智能方向的主流编程语言?
  3. Windows安装配置Python Scrapy环境
  4. MacBook触控板也可以变得更强大——手势增强工具 Better and better
  5. 一个简单问题,Java里,如何得到一个月有多少天???
  6. Oracle创建表空间 管理表空间
  7. 今天适合的样式 黑白色 网站黑白色
  8. 奇安信渗透测试工程师试题(2020)
  9. 微信小程序 授权地理位置被拒绝后 wx.getLocation接口调用失败问题
  10. 前端小报 - 201902月刊