欢迎光临散文网 会员登陆 & 注册

Firebird Cookbook 1:客户端程序使用

2022-02-04 00:06 作者:CSDN首席喷子  | 我要投稿

Firebird数据库既可以作为一个嵌入式数据库使用,也可以在客户端/服务器架构下使用。服务器fbserver是实际操作数据的程序,客户端通过TCP等方式同服务器进行通信,下达SQL指令。客户端程序isql可以连接任意位置的fbserver。

1.0  数据库系统初始化

在Windows环境下,数据库系统的启动必须读取注册表中的数据。bin目录下的instreg和instsvc分别安装注册表和服务:

instreg.exe install

>>  Firebird has been successfully installed in the registry.

instsvc install -superserver -demand -guardian

>>  Service "Firebird Guardian - DefaultInstance" successfully created.

>>  Service "Firebird Server - DefaultInstance" successfully created.

instsvc start

>> Service "Firebird Guardian - DefaultInstance" successfully started.

守护进程会完成数据库系统的启动流程。

1.1  创建和连接数据库

isql工具可以连接并操纵数据库:

isql

>>  Use CONNECT or CREATE DATABASE to specify a database.

 

如果连接本地数据库,则直接输入数据库文件绝对路径即可。如果采用TCP连接远程服务器,则需要加上数据库服务器的IP地址或是计算机域名:

create database ’C:/Documents/Database/Firebird/database/SCHOOL.FDB’ user ’sysdba’ password ‘masterkey’;

create database ’127.0.0.1:C:/Documents/Database/Firebird/database/SCHOOL.FDB’ user ’sysdba’ password ‘masterkey’;

create database ’WIN-P2M4Q9:C:/Documents/Database/Firebird/database/SCHOOL.FDB’ user ’sysdba’ password ‘masterkey’;

注意路径名一定使用斜杠,而不是Windows下的反斜杠!

1.2  SSL

作为一个相对简单的数据库系统,Firebird并不提供SSL连接,所有的数据都是明文传输的。但是,依然可以采用SSH之类的工具实现连接代理。考虑在Windows下没有SSH服务器,这里使用了stunnel和nginx,分别位于客户端和服务器端。

1.2.1  服务器端

默认情况下Firebird数据库服务器使用3050端口。可以使用nginx的TCP反向代理为其添加SSL:

stream {

    server {

listen 127.0.0.1:9091 ssl;

ssl_protocols TLSv1.2 TLSv1.1;

ssl_certificate_key C:/Documents/Database/Firebird/database/ssl/priv.key;

ssl_certificate C:/Documents/Database/Firebird/database/ssl/cert.pem;

proxy_pass 127.0.0.1:3050;

    }    

}

1.2.2  客户端

stunnel是一个SSL代理,能够为没有SSL连接功能的程序提供安全连接。安装后,可在stunnel.conf文件末尾添加:

[fbclient]

accept = 9090

connect = 9091

cert = stunnel.pem

client = yes

 

当然,也可以考虑客户端和服务器端全部使用stunnel:

[fbserver]

accept = 9091

connect= 3050

cert   = stunnel.pem

但是目前来看stunnel的性能较使用了IOCP的nginx更差。

 


Firebird Cookbook 1:客户端程序使用的评论 (共 条)

分享到微博请遵守国家法律